文章分类 -  五月集训

摘要:链表 1. 1290. 二进制链表转整数 思路: 遍历链表,将二进制数转化未十进制数。 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : v 阅读全文
posted @ 2022-05-14 07:41 番茄元 阅读(5) 评论(0) 推荐(0)
摘要:矩阵 1. 1351. 统计有序矩阵中的负数 思路: 大水题,直接遍历数组统计即可 int countNegatives(int** grid, int gridSize, int* gridColSize){ int ans = 0; int r = gridSize, col = gridCol 阅读全文
posted @ 2022-05-11 07:54 番茄元 阅读(3) 评论(0) 推荐(0)
摘要:位运算 1. 191. 位1的个数 思路: 利用位运算统计1的个数 int hammingWeight(uint32_t n) { int ans = 0; while (n) { ans += (n&1); n >>= 1; } return ans; } 2. 461. 汉明距离 思路: 直接位 阅读全文
posted @ 2022-05-11 07:17 番茄元 阅读(6) 评论(0) 推荐(0)
摘要:二分查找 1. 35. 搜索插入位置 思路: 对每个数平方后排序即可 class Solution { public: bool check(int ans, int target) { if (ans >= target) return true; return false; } int Bina 阅读全文
posted @ 2022-05-09 08:27 番茄元 阅读(8) 评论(0) 推荐(0)
摘要:前缀和 1. 1480. 一维数组的动态和 思路: 求数组前缀和 class Solution { public: vector<int> runningSum(vector<int>& nums) { int n = nums.size(); for (int i = 1; i < n; i++) 阅读全文
posted @ 2022-05-08 18:59 番茄元 阅读(11) 评论(0) 推荐(0)
摘要:哈希表 1. 1512. 好数对的数目 思路: 利用哈希表的方式索引,将每个数字与其出现次数建立映射。然后利用数学知识求出好数对的数目。某个数出现一次时对ans无影响,当再出现一个与当前出现的数组成一组,第三个出现的数与当前两个构成两个新的组,依次累加即可获得结果。 class Solution { 阅读全文
posted @ 2022-05-08 17:58 番茄元 阅读(7) 评论(0) 推荐(0)
摘要:滑动窗口 1. 1984. 学生分数的最小差值 思路: 先对nums排序,利用长度为k的滑动窗口在数组内向右平移,每次算出窗口左右端的差即为分数差值,取其中最小值返回即可。 class Solution { public: int minimumDifference(vector<int>& num 阅读全文
posted @ 2022-05-06 08:02 番茄元 阅读(11) 评论(0) 推荐(0)
摘要:双指针 1. 917. 仅仅反转字母 思路: left往右找字母,right往左找字母,两个都找到后交换位置,继续移动指针 class Solution { public: string reverseOnlyLetters(string s) { int len = s.length(); int 阅读全文
posted @ 2022-05-05 21:12 番茄元 阅读(9) 评论(0) 推荐(0)
摘要:贪心 1. 1221. 分割平衡字符串 思路: 分割成尽可能多的字符串,从头开始遍历字符串,每遇到一个平衡字符串,结果加一。利用一个left_cnt记录出现的单个L的数量,遇到L ⇒ left_cnt++,遇到R ⇒ left_cnt--,当left_cnt == 0 时即L,R的数量相等,为一个平 阅读全文
posted @ 2022-05-04 06:42 番茄元 阅读(6) 评论(0) 推荐(0)
摘要:数组 1. 增量元素之间的最大差值 题目: 思路: 考虑到数据范围,O(n^2)暴力枚举 int maximumDifference(int* nums, int numsSize){ if (numsSize <= 1) return -1; int maxn = -1; for (int i = 阅读全文
posted @ 2022-05-03 12:01 番茄元 阅读(2) 评论(0) 推荐(0)
摘要:字符串 1. 500. 键盘行 思路: 参考星球兴磊大佬的hash方法,将每个字母与键盘的行数对应进行索引 class Solution { public: vector<string> findWords(vector<string>& words) { // 每个字母对应的行数 int my_h 阅读全文
posted @ 2022-05-03 12:00 番茄元 阅读(11) 评论(0) 推荐(0)
摘要:排序 1. 977. 有序数组的平方 思路: 对每个数平方后排序即可 class Solution { public: vector<int> sortedSquares(vector<int>& nums) { int n = nums.size(); vector<int> ret; for ( 阅读全文
posted @ 2022-05-03 11:59 番茄元