【LeetCode】剑指 Offer(1)
目录
写在前面:
题目1:剑指 Offer 03. 数组中重复的数字 - 力扣(Leetcode)
题目的接口:
解题思路:
代码:
过啦!!!
题目2:剑指 Offer 06. 从尾到头打印链表 - 力扣(Leetcode)
题目的接口:
解题思路:
代码:
过啦!!!
写在最后:
写在前面:
今天LeetCode 的每日一题质量一般(才不是我看都看不懂),
所以只好去刷一刷质量有保障的剑指 Offer 了。
题目1:剑指 Offer 03. 数组中重复的数字 - 力扣(Leetcode)
题目的接口:
class Solution {
public:int findRepeatNumber(vector<int>& nums) {}
};
解题思路:
其实我第一个想到的是暴力的O(N平方)的解法,
但是想来也不会那么简单让我过,
所以就放弃这个解法了。
思路:
用哈希表记录出现的数字,然后当他再次出现的时候返回即可。
代码:
class Solution {
public:int findRepeatNumber(vector<int>& nums) {//建一个哈希表unordered_map<int, int> map;//遍历数组for(int ret : nums){//如果该数字再次出现就返回if(map[ret] == 1){return ret;}//记录出现过的数字map[ret] = 1;}//因为数组中一定有重复数字,随便返回一个值过检查return 1;}
};
过啦!!!
题目2:剑指 Offer 06. 从尾到头打印链表 - 力扣(Leetcode)
题目的接口:
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:vector<int> reversePrint(ListNode* head) {}
};
解题思路:
遍历链表,然后放进一个栈里,
再把栈里的元素放进一个数组里,就完成逆序了。
最后返回那个数组即可。
代码:
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:vector<int> reversePrint(ListNode* head) {//建一个栈stack<ListNode*> st;//遍历链表并放进栈里while(head != nullptr){st.push(head);head = head->next;}vector<int> v;//把栈的值取出,放进vectorwhile(!st.empty()){v.push_back(st.top()->val);st.pop();}return v;}
};
过啦!!!
写在最后:
以上就是本篇文章的内容了,感谢你的阅读。
如果喜欢本文的话,欢迎点赞和评论,写下你的见解。
如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。
之后我还会输出更多高质量内容,欢迎收看。