5 不负长风

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 3w+

LeetCode3. 无重复字符的最长子串

class Solution {public: int lengthOfLongestSubstring(string s) { int size = s.size(); if(size < 2) { return size; } unordered_set<char> charset; int slow = 0, fast = 0; in

2020-09-15 18:50:19

LeetCode62. 不同路径

简单的动态规划问题。class Solution {public: int uniquePaths(int m, int n) { vector<vector<int>> matrix(n, vector<int>(m)); for (int i = 0; i < m; i++) { matrix[0][i] = 1; } for

2020-09-15 15:58:04

LeetCode42. 接雨水

位置0和位置size-1不会积累雨水,计算的时候不需要考虑。class Solution {public: int trap(vector<int>& height) { int size = height.size(); if(!size) { return 0; } vector<int> left_max(size), right_max(size);

2020-09-15 09:37:41

LeetCode49. 字母异位词分组

class Solution {public: vector<vector<string>> groupAnagrams(vector<string>& strs) { vector<vector<string>> ans; if (strs.size() == 0) { return ans; } unordered_map

2020-09-14 10:11:36

LeetCode面试题 17.10. 主要元素

这道题主要使用摩尔投票法。class Solution {public: int majorityElement(vector<int>& nums) { int major = nums[0]; int count = 1; for (int i = 1;i < nums.size();i++) { if (nums[i] == major) {

2020-09-14 09:34:47

LeetCode169. 多数元素

这道题使用摩尔投票法。class Solution {public: int majorityElement(vector<int>& nums) { int major = nums[0]; int count = 1; for (int i = 1;i < nums.size();i++) { if (nums[i] == major) {

2020-09-14 09:30:00

LeetCode1233. 删除子文件夹

这道题的一个重要思路是要对文件夹名按照字典序进行排序,然后遍历即可。class Solution {public: vector<string> removeSubfolders(vector<string>& folder) { sort(folder.begin(), folder.end()); int len = folder.size(); vector<string> ans;

2020-09-13 21:37:50

LeetCode78. 子集

这道题的思路是位运算。class Solution: def subsets(self, nums: List[int]) -> List[List[int]]: num = 2 ** len(nums) list_ans = [] for i in range(num): res = [] tp = 1 for j in range(len(nums)):

2020-09-13 21:17:03

js学习笔记

高级函数

2020-09-13 18:50:11

LeetCode5511. 二进制矩阵中的特殊位置

class Solution: def numSpecial(self, mat: List[List[int]]) -> int: if len(mat) == 0 or len(mat[0]) == 0: return 0 rows= len(mat) cols = len(mat[0]) cnt = 0 for i in range(rows): for

2020-09-13 10:54:53

归并排序

归并排序的思想是分治,即先排序子数组,再合并子数组。归并排序的实现主要由两个函数构成,即merge和mergeSort()。其中,merge()函数负责合并两个排好序的子数组,这可以看作是合并两个有序数组或合并两个有序链表。至于mergeSort(),我的理解是它是用来划分子问题的。merge()函数处理的最小情况是:合并两个单独的元素。下面附归并排序的c语言实现。#include <stdio.h>int a[] = { 3,4,5,2,1,4,7,3 };void mer

2020-09-13 10:30:50

冒泡排序

冒泡排序是一个基础的问题,大一上C语言时老师曾作为例子讲解。我对于冒泡排序,一直是用的时候记一下代码,理解的并不深刻。关于冒泡排序的过程,这里就不详细展开了。百度排名靠前的文章讲的很好。冒泡排序实现的时候,主要是两层for循环。我认为比较难理解的是两层for循环的终止条件。以下假设是从小到大排序。第一层for循环是i=0;i<N-1;i++为了便于理解,假设N=5。当i=0时,找到了5个元素中最大的元素,还剩4个元素待排序;当i=1时,找到了4个元素中最大的元素,还剩3个元素待排序;

2020-09-12 21:21:46

LeetCode969. 煎饼排序

class Solution {public: vector<int> pancakeSort(vector<int>& arr) { int n = arr.size(); vector<int> res; int i = n - 1; while (i >= 0) { int index = max_element(arr.begin()

2020-09-10 11:42:50

c++学习笔记

c++ vector.end()指向vector()最后一个元素的下一个位置

2020-09-10 11:16:23

LeetCode面试题 01.02. 判定是否互为字符重排

class Solution {public: bool CheckPermutation(string s1, string s2) { if (s1.size() != s2.size()) { return false; } sort(s1.begin(), s1.end()); sort(s2.begin(), s2.end()); for (int i = 0;

2020-09-10 10:23:42

LeetCode832. 翻转图像

class Solution {public: vector<vector<int>> flipAndInvertImage(vector<vector<int>>& A) { if (A.size() == 0 || A[0].size() == 0) { return A; } for (int i = 0; i < A.size(); i++

2020-09-10 10:05:00

LeetCode5185. 存在连续三个奇数的数组

class Solution {public: bool threeConsecutiveOdds(vector<int>& arr) { if (arr.size() < 3) { return false; } for (int i = 0;i <= arr.size() - 3;i++) { bool flag = true;

2020-08-17 08:13:04

LeetCode5488. 使数组中所有元素相等的最小操作数

class Solution {public: int minOperations(int n) { vector<int> a; for (int i = 0;i < n;i++) { a.push_back(2 * i + 1); } if (n % 2 == 1) { int mid = a[n / 2];

2020-08-17 08:12:04

牛客算法周周练18小阳的贝壳

自己的代码超时了,看到题解要使用线段树,不会。#include <iostream>#include <vector>#include <algorithm>#include <cmath>#include <stdio.h>int maxFun(int a, int b){ return a>b?a:b;}int gcd(int a,int b){ int temp; if(a<b)

2020-08-04 21:32:23

牛客算法周周练18救救企鹅

#include <string>#include <iostream>using namespace std;int main(){ string s, A, B; cin >> s >> A >> B; int pos = s.find(A); while (pos != -1) { s.replace(pos, A.size(), B); pos = s.

2020-08-04 21:28:31

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。