积跬步
不积跬步无以至千里
不会敲代码的小帅
若不能在所做之事中寻到快乐,人便很难成功。
展开
-
2022/1/13 LeetCode 缺失数字
题目:题源:LeetCode题解: 求前n项和,减去数组中的元素,剩下的就是缺失数字代码:class Solution {public: int missingNumber(vector<int>& nums) { int n=nums.size(); int sum=n*(n+1)/2; for(int i=0;i<n;i++){ sum-=nums[i...原创 2022-01-13 22:30:42 · 146 阅读 · 0 评论 -
2022/1/12 LeetCode 验证二叉搜索树
题目:题源:LeetCode题解:代码一:代码二:class Solution {public: int flag=1; long long front=LONG_MIN;//长整型最小值 bool isValidBST(TreeNode* root) { mid(root); return flag; } void mid(TreeNode *root){ if(root==N原创 2022-01-13 22:15:37 · 100 阅读 · 0 评论 -
2021/1/11 LeetCode 二叉树的层序遍历(涉队列、动态数组)
题目:题源:LeetCode题解: 直接看代码就能明白,此代码参考LeetCode大佬题解,涉及动态数组和队列的使用(好久没用忘记如何用代码实现)代码:class Solution {public: vector<vector<int>> levelOrder(TreeNode* root) { if(root==NULL) return {}; vector<vector<int&g...原创 2022-01-11 23:43:50 · 233 阅读 · 0 评论 -
2022/1/10 LeetCode 二叉树的最大深度
题目:题源:LeetCode题解: 思路一:“递归”——照片来自网络,哈哈哈哈哈 思路二:借助队列的BFS或借助栈的DFS均可解决此题,代码量较大代码:class Solution {public: int maxDepth(TreeNode* root) { if(root==NULL) return 0; int left=maxDepth(root->left)+1; ...原创 2022-01-11 16:32:01 · 276 阅读 · 0 评论 -
2022/1/9 LeetCode 环形链表
题目:题源:LeetCode题解: 一个快指针指向下下个元素,一个慢指针指向下一个元素,若两个指针能相遇就有环,否则无环代码:class Solution {public: bool hasCycle(ListNode *head) { ListNode *fast=head,*slow=head; while(fast&&fast->next){ fast=fast-&g...原创 2022-01-10 23:02:33 · 98 阅读 · 0 评论 -
2021/1/8 LeetCode 回文链表
题目:题源:LeetCode题解: 遍历一遍得出链表长度,将链表后半段反转建立新的链表,然后将新链表与原链表的前半段元素比较是否相同即可代码:class Solution {public: bool isPalindrome(ListNode* head) { int n=0; ListNode *left=head,*right=head,*list=NULL,*temp=NULL; while(h...原创 2022-01-08 22:41:51 · 183 阅读 · 0 评论 -
2022/1/7 LeetCode 合并两个有序链表
题目:题源:LeetCode题解: 两个链表中的元素两两比较,使用尾插法建立一个新的递增链表即可,并将其中剩余的一个链边接到尾部,注意实现细节,思路很简单,细节实现看得官方题解。代码:class Solution {public: ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) { ListNode *head=new ListNode(0);//随便附一个值,不让其为空...原创 2022-01-07 22:14:40 · 329 阅读 · 0 评论 -
2022/1/6 LeetCode 反转链表
题目:题源:LeetCode题解: 遍历一遍链表,使用头插法建立新的链表即可;代码:class Solution {public: ListNode* reverseList(ListNode* head) { ListNode *head2=NULL; ListNode *temp=NULL; while(head){ temp=head; head=head->...原创 2022-01-06 17:10:57 · 422 阅读 · 0 评论 -
2022/1/5 LeetCode 删除链表的倒数第N个节点
题目描述:题源:LeetCode思路: 使用双指针:两个指针left、right同时指向头结点,然后让right向后移动n个位置,即指向链表的第n+1个元素,此时出现两种情况:①第n+1个元素为空,即链表一共有n个元素,删除倒数第n个元素即为删除第一个元素,返回头结点的下一个节点指针即可。②第n+1个元素不为空,同时后移left、right指针,直到right指向最后一个元素,此处left指向要删除的第n个元素的前一个元素,删除该元素的后一个元素,即left->next=l...原创 2022-01-05 21:54:27 · 209 阅读 · 0 评论 -
2021/6/9 LeetCode 爬楼梯 简单DP
题源原创 2021-06-16 16:26:17 · 103 阅读 · 0 评论 -
2021/6/8 LeetCode 第一个错误的版本
题源:思路:代码:// The API isBadVersion is defined for you.// bool isBadVersion(int version);class Solution {public: int firstBadVersion(int n) { int left=1,right=n; while(left<right){ int mid=left+(right-lef...原创 2021-06-16 15:53:45 · 122 阅读 · 0 评论 -
2021/6/7 LeetCode 合并两个有序数组
题源:原创 2021-06-16 15:01:43 · 101 阅读 · 0 评论 -
2021/6/6 LeetCode 删除链表中的节点
tiy原创 2021-06-06 20:13:38 · 90 阅读 · 0 评论 -
2021/6/4 LeetCode 最长公共前缀
题源:解析:以列为第一个for循环,行为第二个for循环,进行遍历即可。注意:字符数组为0和1的特判一下,不能参与双重循环。代码:class Solution {public: string longestCommonPrefix(vector<string>& strs) { string res=""; int length=strs.size(); if(length==0) return res; ..原创 2021-06-05 21:04:15 · 88 阅读 · 0 评论 -
2021/6/3 LeetCode 外观数列
题源:代码 :原创 2021-06-05 20:09:19 · 87 阅读 · 0 评论 -
2021/6/2 LeetCode 字符串转换整数 (atoi)
题源:解析:代码:class Solution {public: int myAtoi(string s) { int i=0,res=0,r=0,flag=1; while(s[i]==' ') i++; if(s[i]=='-') flag=-1;///判断是否为负数 if(s[i]=='-'||s[i]=='+') i++; while(i<s.size()&&isdigit(s.原创 2021-06-02 23:59:25 · 101 阅读 · 0 评论 -
2021/6/1
占位置原创 2021-06-01 21:29:43 · 101 阅读 · 0 评论 -
2021/5/31 LeetCode 实现 strStr()
题源:LeetCode解析 :直接调用的string中的find()函数,没有使用使用双指针。代码:class Solution {public: int strStr(string haystack, string needle) { int n; if((n=haystack.find(needle))==string::npos){///若查找不到返回string: :npos return -1; }..原创 2021-05-31 18:59:09 · 77 阅读 · 0 评论 -
2021/5/30 验证回文串
题源:解析原创 2021-05-30 11:54:54 · 88 阅读 · 0 评论 -
2021/5/30 有效的字母异位词
题源:LeetCode解析:对两个字符串进行排序,然后比较是否相等即可。代码:class Solution {public: bool isAnagram(string s, string t) { sort(s.begin(),s.end()); sort(t.begin(),t.end()); if(s==t) return true; else return false; }};...原创 2021-05-30 11:12:54 · 95 阅读 · 0 评论 -
2021/5/29 LeetCode 字符串中的第一个唯一字符
题源:LeetCode题解一:此方法过于取巧,还是看题解二哈希方法吧。代码一:class Solution {public: int firstUniqChar(string s) { int len=s.size(); for(int i=0;i<len;i++){ if(s.find(s[i])==s.rfind(s[i])){ return i; } ..原创 2021-05-29 17:41:35 · 91 阅读 · 0 评论 -
2021/5/27 LeetCode旋转图像
题源:https://leetcode-cn.com/problems/rotate-image/题解一:引入一个新的数组,找规律,找出第i行第j列的元素在旋转后的位置即可。matrix_new[j][n-1-i]=matrix[i][j];代码一:class Solution {public: void rotate(vector<vector<int>>& matrix) { int n=matrix.size(); au.原创 2021-05-27 23:46:39 · 109 阅读 · 0 评论 -
2021/5/28 LeetCode 整数翻转
数学简单题,自己钻牛角尖了原创 2021-05-28 21:17:57 · 97 阅读 · 0 评论 -
2021/5/26 LeetCode 有效的数独(待补充位运算解法)
题源:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x2f9gg/解析:看得官方题解,移步LeetCode学习吧。原创 2021-05-26 23:29:07 · 113 阅读 · 0 评论 -
2021/5/25 LeetCode 两个数的和
题源:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x2jrse/题解:暴力遍历,见代码。代码:class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int>result(2,0);//创建一个size为2的动态数组,且值全..原创 2021-05-25 21:23:39 · 106 阅读 · 0 评论 -
2021/5/24 LeetCode 反转字符串
题源:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnhbqj/题解一:直接调用STL中的函数即可。代码:class Solution {public: void reverseString(vector<char>& s) { reverse(s.begin(),s.end()); }};题解二:使用双指针,一个指向字符串的首元素,一个指向..原创 2021-05-24 15:13:32 · 109 阅读 · 0 评论 -
2021/5/23 LeetCode:移动零
题源:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x2ba4i/解析:借助简单排序的思想,通过双层循环,将0移动到最后,时间复杂度较大。代码:class Solution {public: void moveZeroes(vector<int>& nums) { int length=nums.size(); for(int i=0;i&l..原创 2021-05-23 19:24:15 · 97 阅读 · 0 评论 -
2021/5/23 LeetCode 加一
题源:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x2cv1c/解析:分情况讨论。(1)先讨论全部为9的情况,大数组容量至原来的大小+1,首位为1,其他位为零;(2)不全部为9,从最低位开始遍历,开始将最低位设置为当前位,判断当前位是否为9,不为9直接+1结束,若为9此位为0,进一,将当前位的前一位设置为当位即i--,进行循环。代码:class Solution {public: vecto..原创 2021-05-23 17:46:54 · 80 阅读 · 0 评论 -
2021/5/23 LeetCode 两个数组的交集 II
题源:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x2y0c2/分析:使用unordered_map函数,将nums1中的数组元素作为key,数量作为value,构建m;然后遍历nums2中的元素,以每个元素作为目标在m中进行查找,若找到且值还大于或等于1,则将该元素作为结果存储在nums1中。(可以去题源看官方解答,此题也是看得解析)代码 :class Solution {public: ..原创 2021-05-23 16:23:13 · 157 阅读 · 0 评论 -
2021/5/22 LeetCode:只出现一次的数字
题源:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x21ib6/分析:通过排序,则只出现一次的元素会出现在两个地方:(1)从开始两两比较,不同时的第一个元素;(2)若前面没找到,就在数组的最后一个元素;代码:class Solution {public: int singleNumber(vector<int>& nums) { sort(nums.beg..原创 2021-05-22 11:16:10 · 110 阅读 · 0 评论 -
2021-05-21 LeetCode:存在重复元素
题源:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x248f5/分析:没有使用哈希,思想是先使用unique()函数和erase()函数,真正删除重复元素后再根据删除后的容器大小与原先的作比较得出结果。代码:另一篇博客关于unique函数与erase函数的搭配使用class Solution {public: bool containsDuplicate(vector<int>...原创 2021-05-21 16:51:30 · 97 阅读 · 0 评论 -
2021/5/21 LeetCode:旋转数组
来源:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x2skh7/分析一:若不考虑空间复杂度,在定义一个大小确定的数组,按照循环数组的方式移动存放给定的元素即可。代码:class Solution {///消耗额外空间的方法public: void rotate(vector<int>& nums, int k) { int length=..原创 2021-05-21 16:18:02 · 96 阅读 · 0 评论 -
2021-05-20 LeetCode:买卖股票的最佳时机 II
来源:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x2zsx1/题解:贪心思想,因为当天卖了,还可以再买当天的,当天卖了有的赚就卖,只要今天买了下一天有的赚就买。回归到数组上,即将所有后一个减前一个为正 的和加起来。代码:class Solution {public: int maxProfit(vector<int>& prices) { ...原创 2021-05-20 19:27:18 · 122 阅读 · 0 评论 -
2021-05-19 LeetCode:删除排序数组中的重复项
来源:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x2gy9m/题解:代码:class Solution {public: int removeDuplicates(vector<int>& nums) { if(nums.size()==0) return 0; int i=0;///慢指针在重复位置新的 for(int ..原创 2021-05-19 17:18:47 · 112 阅读 · 0 评论