![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指 Offer
蒟蒻颖
一个热爱开发的数学蒟蒻
展开
-
剑指 Offer 11. 旋转数组的最小数字
题目链接11. 旋转数组的最小数字思路分析利用二分查找即可。class Solution {public: int minArray(vector<int>& numbers) { std::ios::sync_with_stdio(false); int l = 0, r = numbers.size() - 1; while(r > 0 && numbers[r] == numbers[0])原创 2021-03-30 20:14:59 · 163 阅读 · 0 评论 -
剑指 Offer 03. 数组中重复的数字
题目链接03. 数组中重复的数字思路分析运用占位,如果i!=nums[i]则说明在该坑位的数与该下标不相等,如果nums[i]==nums[nums[i]]则说明两个值重复class Solution {public: int findRepeatNumber(vector<int>& nums) { std::ios::sync_with_stdio(false); int n = nums.size(); for(原创 2021-03-21 00:19:35 · 162 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找
题目链接04. 二维数组中的查找思路分析利用右上角的数来判断减少判断行数,如果右上角的数大于target那么该列都大于,所以j–,如果小于target那么改行都小于,所以i++。class Solution {public: bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) { std::ios::sync_with_stdio(false);原创 2021-03-21 15:58:28 · 190 阅读 · 0 评论 -
剑指 Offer 05. 替换空格
题目链接03. 数组中重复的数字思路分析遍历判断即可。class Solution {public: string replaceSpace(string s) { std::ios::sync_with_stdio(false); string tmp; for(auto a : s){ if(a == ' ') tmp += "%20"; else tmp += a; }原创 2021-03-21 12:58:30 · 167 阅读 · 0 评论 -
剑指 Offer 06. 从尾到头打印链表
题目链接06. 从尾到头打印链表思路分析遍历一遍列表储存在vector中,然后反转输出。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: vector<int>原创 2021-03-21 16:08:57 · 174 阅读 · 0 评论 -
剑指 Offer 09. 用两个栈实现队列
题目链接09. 用两个栈实现队列思路分析用两个栈实现队列,首先把1->2然后逐个弹出顶端元素。class CQueue {public: stack<int> stack1, stack2; CQueue() { } void appendTail(int value) { stack1.push(value); } int deleteHead() { std::ios::原创 2021-03-21 16:52:10 · 171 阅读 · 0 评论 -
剑指 Offer 17. 打印从1到最大的n位数
题目链接17. 打印从1到最大的n位数思路分析直接从1到pow(10, n)即可。class Solution {public: vector<int> printNumbers(int n) { std::ios::sync_with_stdio(false); vector<int> C; for(int i = 1; i < pow(10, n); i++) C.push_bac原创 2021-03-30 18:12:31 · 162 阅读 · 0 评论 -
剑指 Offer 18. 删除链表的节点
题目链接18. 删除链表的节点/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* deleteNode(ListNode* head, int val) {原创 2021-03-30 18:39:10 · 159 阅读 · 0 评论 -
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
题目链接21. 调整数组顺序使奇数位于偶数前面思路分析首尾双指针class Solution {public: vector<int> exchange(vector<int>& nums) { std::ios::sync_with_stdio(false); int i = 0, j = nums.size() - 1; while(i < j){ while(nums[i原创 2021-03-24 22:47:30 · 164 阅读 · 0 评论 -
剑指 Offer 22. 链表中倒数第k个节点
题目链接22. 链表中倒数第k个节点思路分析由于链表不能够前巡结点,所以我们一共遍历两便链表,第一遍记录链表的长度,第二遍我们遍历输入第k个结点/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {pu原创 2021-03-27 08:24:30 · 162 阅读 · 0 评论 -
剑指 Offer 25. 合并两个排序的链表
题目链接25. 合并两个排序的链表思路分析利用归并排序的归并思想/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* mergeTwoLists(ListNo原创 2021-03-25 10:06:18 · 168 阅读 · 0 评论 -
剑指 Offer 50. 第一个只出现一次的字符
题目链接50. 第一个只出现一次的字符思路分析利用利用哈希表储存频数,然后遍历输出等于1的字符class Solution {public: char firstUniqChar(string s) { std::ios::sync_with_stdio(false); unordered_map<int, int> tmp; for(auto c : s) tmp[c]++; for(auto it : s)原创 2021-03-21 15:14:08 · 171 阅读 · 0 评论 -
剑指 Offer 51. 数组中的逆序对
题目链接51. 数组中的逆序对思路分析运用归并排序的逆序过程求逆序对class Solution {public: typedef long long LL; LL res = 0; LL mergeSort(vector<int>& nums, vector<int>& tmp, int l, int r){ if(l >= r) return 0; int mid = (l + r) /原创 2021-03-19 11:30:12 · 174 阅读 · 0 评论 -
剑指 Offer 53 - I. 在排序数组中查找数字 I
题目链接53 - I. 在排序数组中查找数字 I思路分析利用二分查找即可。class Solution {public: int search(vector<int>& nums, int target) { std::ios::sync_with_stdio(false); if(nums.empty()) return 0; int l = 0, r = nums.size() - 1; while原创 2021-03-30 18:52:59 · 161 阅读 · 0 评论 -
剑指 Offer 57. 和为s的两个数字
题目链接57. 和为s的两个数字思路分析利用反向迭代器输出class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { std::ios::sync_with_stdio(false); std::cin.tie(0); unordered_map<int, int> hash; for(i原创 2021-03-24 23:10:13 · 164 阅读 · 0 评论