Day8 字符串

摘要: 字符串 例题 344. 反转字符串 思想:双指针 void reverseString(vector<char>& s) { int l = 0, r = s.size()-1; while(l<r){ char tmp = s[l]; s[l] = s[r]; s[r] = tmp; l++; r 阅读全文
posted @ 2022-09-29 17:17 Gatzzze 阅读(36) 评论(0) 推荐(0)

NSum之和

摘要: 3Sum之和 15. 三数之和 思想:双指针 将数组排序 双指针分别指向i+1,nums.size()-1的位置 求和,比较,移动双指针 要注意的是去重的逻辑 vector<vector<int>> threeSum(vector<int>& nums) { sort(nums.begin(), n 阅读全文
posted @ 2022-09-29 11:41 Gatzzze 阅读(43) 评论(0) 推荐(0)

Day6&7 哈希表

摘要: 哈希表 例题 242. 有效的字母异位词 unordered_map的使用。 bool isAnagram(string s, string t) { unordered_map<char, int> map; for(auto ss: s) map[ss]++; for(auto tt: t){ 阅读全文
posted @ 2022-09-29 09:36 Gatzzze 阅读(55) 评论(0) 推荐(0)

Day3&Day4 链表

摘要: 链表 链表的遍历。 例题 707. 设计链表 class MyLinkedList { public: // 定义链表节点结构体 struct LinkedNode { int val; LinkedNode* next; LinkedNode(int val):val(val),next(null 阅读全文
posted @ 2022-09-24 22:29 Gatzzze 阅读(55) 评论(0) 推荐(0)

Day2 双指针+滑动指针

摘要: 1. 滑动窗口 例题 209. 长度最小的子数组 思想:滑动指针,一开始右移窗口右边界,加入元素;当窗口内出现sum>=target时,收缩左窗口,更新ans。 int minSubArrayLen(int target, vector<int>& nums) { int l = 0, r = 0; 阅读全文
posted @ 2022-09-21 23:21 Gatzzze 阅读(27) 评论(0) 推荐(0)

day1 二分查找

摘要: 二分查找 要在二分查找的过程中,保持不变量,就是在while寻找中每一次边界的处理都要坚持根据区间的定义来操作,这就是循环不变量规则。 例题 704. 二分查找 思路:单纯的二分查找 这里使用左闭右闭区间。 int search(vector<int>& nums, int target) { in 阅读全文
posted @ 2022-09-21 21:59 Gatzzze 阅读(41) 评论(0) 推荐(0)