uacs2024

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

09 2022 档案

leetcode69-x的平方根
摘要:69. x 的平方根 简单题,但是考察的内容可以有很多 首先是纯暴力法,毫无特色。速度也很慢。 class Solution { public: int mySqrt(int x) { long long i=1; while(1) { if(i*i<=x) i++; else break; } r 阅读全文

posted @ 2022-09-29 18:57 ᶜʸᵃⁿ 阅读(19) 评论(0) 推荐(0) 编辑

leetcode169-多数元素
摘要:169. 多数元素 这道题虽然是简单题,但是有很多精妙的解法。详情看官方题解 class Solution { public: int majorityElement(vector<int>& nums) { int size=nums.size(); if(size<=2) return nums 阅读全文

posted @ 2022-09-29 14:32 ᶜʸᵃⁿ 阅读(19) 评论(0) 推荐(0) 编辑

leetcode977-有序数组的平方
摘要:977. 有序数组的平方 原本直接暴力的做法没有利用到原数组是有序这个条件。这里直接把左边的绝对值大于右边的直接放到最后面,这样就减少很多不必要的操作。 class Solution { public: vector<int> sortedSquares(vector<int>& nums) { i 阅读全文

posted @ 2022-09-28 17:10 ᶜʸᵃⁿ 阅读(17) 评论(0) 推荐(0) 编辑

leetcode131-分割回文串 回溯与方便判断回文串的的判断表
摘要:131. 分割回文串 这是看了卡尔的代码写出来的 class Solution { public: int size; vector<vector<string>> res; vector<string> path; bool isHuiwen(string s,int start,int end) 阅读全文

posted @ 2022-09-26 16:46 ᶜʸᵃⁿ 阅读(16) 评论(0) 推荐(0) 编辑

leetcode40-组合总和 II
摘要:40. 组合总和 II 这题和 39. 组合总和 差不了多少。区别就是这一题提供的集合内有重复元素,而上一题没有重复元素。因为有重复元素,所以输出的结果里不能有重复的中间结果。 class Solution { public: int size,sum=0; vector<vector<int>> 阅读全文

posted @ 2022-09-24 19:12 ᶜʸᵃⁿ 阅读(19) 评论(0) 推荐(0) 编辑

leetcode39-组合总和
摘要:39. 组合总和 首先是原始的错误代码 class Solution { public: int size,sum=0; vector<vector<int>> res; vector<int> path; void backTracking(vector<int>& candidates, int 阅读全文

posted @ 2022-09-24 18:13 ᶜʸᵃⁿ 阅读(14) 评论(0) 推荐(0) 编辑

回溯法抽象为树形结构后,其遍历过程就是:for循环横向遍历,递归纵向遍历,回溯不断调整结果集。
摘要:回溯法抽象为树形结构后,其遍历过程就是:for循环横向遍历,递归纵向遍历,回溯不断调整结果集。 阅读全文

posted @ 2022-09-24 16:36 ᶜʸᵃⁿ 阅读(22) 评论(0) 推荐(0) 编辑

leetcode17-电话号码的字母组合
摘要:17. 电话号码的字母组合 这题还是看了题解才写出来。一开始不懂得每一层递归处理不同数字对应的字母,又想一些二维数组的操作,就搞复杂了。 题中的index就代表当前正在处理第几个数字对应的字母,循环中,压入这个之后就轮到下一个数字的对应字母,最后再返回。 想这种不知道会输入多少个数字的最好的方法就是 阅读全文

posted @ 2022-09-23 20:03 ᶜʸᵃⁿ 阅读(15) 评论(0) 推荐(0) 编辑

leetcode216-组合总和 III
摘要:216. 组合总和 III 有了 77. 组合 的启发后,就成功地自己写了通过的代码 class Solution { public: vector<vector<int>> res; vector<int> path; int sum=0; void combineSum(int k,int n, 阅读全文

posted @ 2022-09-23 18:12 ᶜʸᵃⁿ 阅读(18) 评论(0) 推荐(0) 编辑

leetcode77-组合
摘要:77. 组合 class Solution { public: vector<vector<int>> res; vector<int> path; void backTracking(int n,int k,int startIndex) { if(path.size()==k) { res.pu 阅读全文

posted @ 2022-09-23 17:25 ᶜʸᵃⁿ 阅读(12) 评论(0) 推荐(0) 编辑

leetcode198-打家劫舍
摘要:198. 打家劫舍 这道题在纸上模拟还是很容易的,但是写代码就不同了。第一次写认为的难点是如何找到当前元素除了上一个之外的最大值。于是我想到了用max1保存第二大的下标,max2保存第二大的下标。 全程写下来还是挺顺的,但是中间有几步dp[i]写成了nums[i]一直没发现就调试了很久。 写的时候没 阅读全文

posted @ 2022-09-21 15:10 ᶜʸᵃⁿ 阅读(13) 评论(0) 推荐(0) 编辑

int mid = begin +(end - begin)/2; 不要用int mid = (end + begin)/2; 会越界,特别是一些二分查找的题目
摘要:int mid = begin +(end - begin)/2; 不要用int mid = (end + begin)/2; 会越界 阅读全文

posted @ 2022-09-20 14:18 ᶜʸᵃⁿ 阅读(15) 评论(0) 推荐(0) 编辑

leetcode1047-删除字符串中的所有相邻重复项
摘要:1047. 删除字符串中的所有相邻重复项 方法一:stack 这种做法是纯纯的小丑做法,因为string类型本身就可以实现栈。这样的做法结束之后还要出栈倒序放到字符串里,时间开销很大。 class Solution { public: string removeDuplicates(string s 阅读全文

posted @ 2022-09-18 17:45 ᶜʸᵃⁿ 阅读(21) 评论(0) 推荐(0) 编辑

leetcode104-二叉树的最大深度
摘要:104. 二叉树的最大深度 这道题用递归法还是很容易的,递归的关键在于停止条件、递归函数和返回值处理。 方法一:DFS /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; 阅读全文

posted @ 2022-09-17 19:18 ᶜʸᵃⁿ 阅读(10) 评论(0) 推荐(0) 编辑

leetcode21-合并两个有序链表
摘要:21. 合并两个有序链表 方法一:递归 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} 阅读全文

posted @ 2022-09-17 18:25 ᶜʸᵃⁿ 阅读(18) 评论(0) 推荐(0) 编辑

leetcode237-删除链表中的节点
摘要:237. 删除链表中的节点 方法一:不断赋值,最后的那个指向NULL。这种方法有点想数组插入,没有充分利用链表的性质 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * 阅读全文

posted @ 2022-09-16 18:19 ᶜʸᵃⁿ 阅读(13) 评论(0) 推荐(0) 编辑

leetcode328-奇偶链表
摘要:328. 奇偶链表 首先是原始的错误代码。 第一处错误就是最后的p->next=head->next; head->next其实早就不是一开始的第二个结点了,所以应该是事先保存的第二个结点 第二处错误就是while循环里的代码,不知道是什么原因出错 /** * Definition for sing 阅读全文

posted @ 2022-09-15 16:13 ᶜʸᵃⁿ 阅读(11) 评论(0) 推荐(0) 编辑

leetcode142-环形链表 II
摘要:142. 环形链表 II 方法一:快慢指针 先通过快指针和慢指针判断是否有环,无环则返回NULL. 有环: 概括来说就是:f 代表快指针走了几步,s 代表慢指针走了几步。则有 f = 2s ; f = s + nb ; (b代表环的结点个数,n代表快指针比慢指针多走几个环的长度) 两式联立得,f = 阅读全文

posted @ 2022-09-14 19:37 ᶜʸᵃⁿ 阅读(15) 评论(0) 推荐(0) 编辑

leetcode141-环形链表
摘要:141. 环形链表 方法一:快慢指针,如果存在环,快指针总会追上慢指针的。如果不存在环,那么遇到NULL就会直接结束 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * 阅读全文

posted @ 2022-09-14 17:46 ᶜʸᵃⁿ 阅读(11) 评论(0) 推荐(0) 编辑

leetcode19-删除链表的倒数第N个结点
摘要:19. 删除链表的倒数第 N 个结点 方法一:快慢指针法 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nul 阅读全文

posted @ 2022-09-14 16:12 ᶜʸᵃⁿ 阅读(16) 评论(0) 推荐(0) 编辑

leetcode203-移除链表元素(单链表带头结点和不带头结点删除特定元素)
摘要:203. 移除链表元素 这里的做法是遍历找到需要删除的结点的前一个结点,但由于题目没有给出头结点,所以就有先删除开头符合条件的结点和设置虚拟头结点两种做法 一、释放内存free和delete的区别: 1. delete 用于释放 new 分配的空间,free 有用释放 malloc 分配的空间 2. 阅读全文

posted @ 2022-09-13 18:16 ᶜʸᵃⁿ 阅读(37) 评论(0) 推荐(0) 编辑

当结果int 类型可以装下,但计算过程会超出int范围,可以在计算式中乘以 “1LL”解决,就不会溢出了
摘要:leetcode119. 杨辉三角 II有感 阅读全文

posted @ 2022-09-13 15:27 ᶜʸᵃⁿ 阅读(35) 评论(0) 推荐(0) 编辑

leetcode27-移除元素
摘要:https://leetcode.cn/problems/remove-element/ 首先是自己想的铸币解法。先进行排序,那么目标数字就连续聚在一起。等快指针移动到最后一个目标值得下一个元素就开始进行赋值操作。然后快指针和慢指针不断同步地右移进行赋值操作,直到快指针移动到最后一个元素,两个指针都 阅读全文

posted @ 2022-09-09 18:46 ᶜʸᵃⁿ 阅读(13) 评论(0) 推荐(0) 编辑

leetcode409-最长回文串
摘要:https://leetcode.cn/problems/longest-palindrome/ 要生成最长回文串,所有出现了偶数次的字母都要添加。出现奇数次的字母就要添加出现次数最多的那个字母,其余出现次数非1的奇数次字母则添加 n-1 个 bool类型flag是用来标记是否已经添加最大奇数字母。 阅读全文

posted @ 2022-09-09 12:39 ᶜʸᵃⁿ 阅读(16) 评论(0) 推荐(0) 编辑

leetcode498-对角线遍历
摘要:https://leetcode.cn/problems/diagonal-traverse/ 一开始看到题目的想法是,每个矩阵都要用for循环遍历m+n-1次对角线,然后遍历对角线上的元素,后来感觉太麻烦便放弃。 然后就想到通过一个bool类型的变量控制遍历方向是从右上还是左下,true代表右上, 阅读全文

posted @ 2022-09-08 19:55 ᶜʸᵃⁿ 阅读(28) 评论(0) 推荐(0) 编辑

leetcode48-旋转图像
摘要:https://leetcode.cn/problems/rotate-image/ 方法一:额外开一个新数组 class Solution { public: void rotate(vector<vector<int>>& matrix) { int n = matrix.size(); // 阅读全文

posted @ 2022-09-08 15:03 ᶜʸᵃⁿ 阅读(23) 评论(0) 推荐(0) 编辑

leetcode1768-交替合并字符串
摘要:https://leetcode.cn/problems/merge-strings-alternately/ 这题没什么好说的,特别简单。但是也学到了一些点。 1.字符串res和另一个字符串中的某一个字符nums[i]不能通过 res += nums[i];形式添加,否则会报错。要用 res = 阅读全文

posted @ 2022-09-05 14:47 ᶜʸᵃⁿ 阅读(11) 评论(0) 推荐(0) 编辑

leetcode283-移动零
摘要:https://leetcode.cn/problems/move-zeroes/ 方法一:双指针法 设置两个指针 i 和 j , 1 class Solution { 2 public: 3 void moveZeroes(vector<int>& nums) { 4 int i,j,size=n 阅读全文

posted @ 2022-09-04 15:44 ᶜʸᵃⁿ 阅读(13) 评论(0) 推荐(0) 编辑

leetcode1588-所有奇数长度子数组的和
摘要:https://leetcode.cn/problems/sum-of-all-odd-length-subarrays/ 虽然知道几个嵌套循环暴力可以做,但是可以明显看出每一次都要经过很多重复计算,数组中每一个数字相加的次数是不同的,于是尝试看看相加的次数有什么规律。 其中大小为5的数组相加次数分 阅读全文

posted @ 2022-09-04 13:45 ᶜʸᵃⁿ 阅读(26) 评论(0) 推荐(0) 编辑

leetcode496-下一个更大元素I——单调栈解决下一个更大元素问题
摘要:https://leetcode.cn/problems/next-greater-element-i/ 方法一:暴力 vector<int> res;int size1=nums1.size(),size2=nums2.size(); for(int i=0;i<size1;i++) { int  阅读全文

posted @ 2022-09-04 12:17 ᶜʸᵃⁿ 阅读(24) 评论(0) 推荐(0) 编辑

leetcode1790-仅执行一次字符串交换能否使两个字符串相等
摘要:int count=0,sizes=s1.size(),sum1=0,sum2=0; for(int i=0;i<sizes;i++) { if(s1[i]!=s2[i]) count++; sum1 += s1[i]; sum2 += s2[i]; } if((count==2||count==0 阅读全文

posted @ 2022-09-03 17:20 ᶜʸᵃⁿ 阅读(23) 评论(0) 推荐(0) 编辑

快慢指针
摘要:百度百科:快慢指针中的快慢指的是移动的步长,即每次向前移动速度的快慢。例如可以让快指针每次沿链表向前移动2,慢指针每次向前移动1次。 判断单链表是否为循环链表 让快慢指针从链表头开始遍历,快指针向前移动两个位置,慢指针向前移动一个位置;如果快指针到达NULL,说明链表以NULL为结尾,不是循环链表。 阅读全文

posted @ 2022-09-03 15:54 ᶜʸᵃⁿ 阅读(46) 评论(0) 推荐(0) 编辑

leetcode202-快乐数
摘要:https://leetcode.cn/problems/happy-number/ 一开始的错误代码 int sum; if(n==1) return true; while(n>9) { sum=0; while(n) { sum += (n%10)*(n%10); n /= 10; } if( 阅读全文

posted @ 2022-09-03 15:37 ᶜʸᵃⁿ 阅读(12) 评论(0) 推荐(0) 编辑

leetcode1502-判断能否形成等差数列
摘要:我的原始代码 class Solution { public: bool canMakeArithmeticProgression(vector<int>& arr) { sort(arr.begin(),arr.end()); int sizes=arr.size(),n=arr[1]-arr[0 阅读全文

posted @ 2022-09-02 19:31 ᶜʸᵃⁿ 阅读(23) 评论(0) 推荐(0) 编辑

leetcode191-位1的个数
摘要:1.循环检查二进制位 把题目给出的数不断对2取余,余数为1则计数 class Solution { public: int hammingWeight(uint32_t n) { int count=0; while(n) { if(n%2==1) count++; //还可以直接化简为count+ 阅读全文

posted @ 2022-09-02 17:56 ᶜʸᵃⁿ 阅读(11) 评论(0) 推荐(0) 编辑

leetcode976-三角形的最大周长
摘要:第一反应是排序,然后瞎想了很多什么双指针、三指针的东西。看了评论区才豁然开朗。 “ 为什么排序遍历相邻元素可行,有没有可能最优解为非相邻元素?(不会) 证明:反证 假设 a , b, c 为最优解,且存在a',b',满足 a < a' < b < b' < c(存在非相邻元素) 由于 a + b > 阅读全文

posted @ 2022-09-02 17:12 ᶜʸᵃⁿ 阅读(16) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示