uacs2024

导航

2022年9月8日 #

leetcode498-对角线遍历

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

posted @ 2022-09-08 19:55 ᶜʸᵃⁿ 阅读(40) 评论(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 ᶜʸᵃⁿ 阅读(31) 评论(0) 推荐(0)

2022年9月5日 #

leetcode1768-交替合并字符串

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

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

2022年9月4日 #

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 ᶜʸᵃⁿ 阅读(22) 评论(0) 推荐(0)

leetcode1588-所有奇数长度子数组的和

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

posted @ 2022-09-04 13:45 ᶜʸᵃⁿ 阅读(32) 评论(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 ᶜʸᵃⁿ 阅读(41) 评论(0) 推荐(0)

2022年9月3日 #

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 ᶜʸᵃⁿ 阅读(27) 评论(0) 推荐(0)

快慢指针

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

posted @ 2022-09-03 15:54 ᶜʸᵃⁿ 阅读(51) 评论(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 ᶜʸᵃⁿ 阅读(22) 评论(0) 推荐(0)

2022年9月2日 #

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 ᶜʸᵃⁿ 阅读(29) 评论(0) 推荐(0)