【LeetCode】剑指 Offer(1)

简介: 【LeetCode】剑指 Offer(1)

写在前面:

今天LeetCode 的每日一题质量一般(才不是我看都看不懂),


所以只好去刷一刷质量有保障的剑指 Offer 了。


题目1:剑指 Offer 03. 数组中重复的数字 - 力扣(Leetcode)


题目的接口:

class Solution {
public:
    int findRepeatNumber(vector& nums) {
    }
};

解题思路:

其实我第一个想到的是暴力的O(N平方)的解法,


但是想来也不会那么简单让我过,


所以就放弃这个解法了。


思路:


用哈希表记录出现的数字,然后当他再次出现的时候返回即可。


代码:

class Solution {
public:
    int findRepeatNumber(vector& nums) {
        //建一个哈希表
        unordered_map 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 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 reversePrint(ListNode* head) {
        //建一个栈
        stack st;
        //遍历链表并放进栈里
        while(head != nullptr)
        {
            st.push(head);
            head = head->next;
        }
        vector v;
        //把栈的值取出,放进vector
        while(!st.empty())
        {
            v.push_back(st.top()->val);
            st.pop();
        }
        return v;
    }
};

过啦!!!


写在最后:

以上就是本篇文章的内容了,感谢你的阅读。


如果喜欢本文的话,欢迎点赞和评论,写下你的见解。


如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。


之后我还会输出更多高质量内容,欢迎收看。


相关文章
|
4天前
|
算法 DataX
二叉树(中)+Leetcode每日一题——“数据结构与算法”“剑指Offer55-I. 二叉树的深度”“100.相同的树”“965.单值二叉树”
二叉树(中)+Leetcode每日一题——“数据结构与算法”“剑指Offer55-I. 二叉树的深度”“100.相同的树”“965.单值二叉树”
|
4天前
|
算法 定位技术
【leetcode】剑指 Offer II 105. 岛屿的最大面积-【深度优先DFS】
【leetcode】剑指 Offer II 105. 岛屿的最大面积-【深度优先DFS】
17 0
|
4天前
|
Go
golang力扣leetcode 剑指Offer II 114. 外星文字典
golang力扣leetcode 剑指Offer II 114. 外星文字典
21 0
|
4天前
「LeetCode」剑指 Offer 40. 最小的k个数
「LeetCode」剑指 Offer 40. 最小的k个数
30 0
|
4天前
leetcode 剑指 Offer 32 - III. 从上到下打印二叉树 III
leetcode 剑指 Offer 32 - III. 从上到下打印二叉树 III
24 0
|
4天前
leetcode 剑指 Offer 32 - II. 从上到下打印二叉树 II
leetcode 剑指 Offer 32 - II. 从上到下打印二叉树 II
23 0
|
4天前
/leetcode 剑指 Offer 32 - I. 从上到下打印二叉树
/leetcode 剑指 Offer 32 - I. 从上到下打印二叉树
22 0
|
4天前
leetcode 剑指 Offer 40. 最小的k个数
leetcode 剑指 Offer 40. 最小的k个数
20 0
|
4天前
LeetCode 剑指 Offer 28. 对称的二叉树
LeetCode 剑指 Offer 28. 对称的二叉树
18 0
|
4天前
剑指Offer LeetCode 面试题25. 合并两个排序的链表
剑指Offer LeetCode 面试题25. 合并两个排序的链表
18 0