摘要: 151.翻转字符串里的单词 把复杂问题拆分成简单问题的能力比较薄弱。比如这个问题中: 删除空格 =》删除字符串中的元素并且添加 调转单词=》先把整串字符串倒转,再分别倒转正每个单词 class Solution { public: string reverseWords(string s) { // 阅读全文
posted @ 2025-03-25 13:22 ChloeChen0221 阅读(6) 评论(0) 推荐(0)
摘要: 什么时候用库函数什么时候不用? 如果题目关键的部分直接用库函数就可以解决,建议不要使用库函数。 如果库函数仅仅是 解题过程中的一小部分,并且你已经很清楚这个库函数的内部实现原理的话,可以考虑使用库函数。 344.反转字符串 easy class Solution { public: void rev 阅读全文
posted @ 2025-03-20 00:09 ChloeChen0221 阅读(32) 评论(0) 推荐(0)
摘要: 454.四数相加II 和昨天那个两数之和为target有点像。 一开始想的是创建四个map分别存数组,但是这样跟暴力算法也没区别。 class Solution { public: int fourSumCount(vector<int>& nums1, vector<int>& nums2, ve 阅读全文
posted @ 2025-03-20 00:09 ChloeChen0221 阅读(260) 评论(0) 推荐(0)
摘要: 一般哈希表都是用来快速判断一个元素是否出现集合里。 用于实现哈希的数据结构 std::unordered_map 底层实现为哈希表,std::map 和 std::multimap 的底层实现是红黑树。同理,std::map 和 std::multimap 的key也是有序的(这个问题也经常作为面试 阅读全文
posted @ 2025-03-17 16:41 ChloeChen0221 阅读(517) 评论(0) 推荐(0)
摘要: 24. 两两交换链表中的节点 要画图,不然会乱。 class Solution { public: ListNode* swapPairs(ListNode* head) { ListNode* fhead=new ListNode(); fhead->next=head; ListNode* p= 阅读全文
posted @ 2025-03-16 21:55 ChloeChen0221 阅读(43) 评论(0) 推荐(0)
摘要: 203.移除链表元素 开始觉得很简单,自信满满写了答案 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(null 阅读全文
posted @ 2025-03-16 21:55 ChloeChen0221 阅读(554) 评论(0) 推荐(0)
摘要: 209.长度最小的子数组 子数组元素之和大于等于target 重点:滑动窗口 为什么用滑动窗口?子数组是连续的 一开始自己写的: class Solution { public: int minSubArrayLen(int target, vector<int>& nums) { int left 阅读全文
posted @ 2025-03-16 21:54 ChloeChen0221 阅读(609) 评论(0) 推荐(0)
摘要: 704.二分查找 对于有序元素的查找,二分搜索简单高效。 二分查找写很多遍了,三个指针:left right mid,重点在于范围的开闭情况。 我之前“背”的一直都是左闭右闭的情况 class Solution { public: int search(vector<int>& nums, int 阅读全文
posted @ 2025-03-12 17:00 ChloeChen0221 阅读(95) 评论(0) 推荐(0)