![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
剑指offer
文章平均质量分 57
算法菜鸡的求职刷题之路
谁抢了我的昵称?
这个作者很懒,什么都没留下…
展开
-
一道题练三种算法(并查集/BFS/DFS)
1971. 寻找图中是否存在路径1.并查集将给定双向图中的连通分量看成一个集合,把所有相连节点合并为一个集合,最后直接查找start和end节点的祖宗节点,若在同一集合内则说明存在从顶点start到end的路径class Solution {public: static const int maxn=1e5; int *fa=new int[maxn*2+10]; int find(int x){ if(fa[x]==x)return x;原创 2022-03-23 02:16:15 · 325 阅读 · 0 评论 -
一些对刷题有用的技巧集锦(自用,持续更新中...)
String1.replace用str替换指定字符串从idx位置开始长度为len的字符replace(idx,len,str);class Solution {public: string replaceSpace(string s) { for(int i=0;i<s.length();++i){ if(s[i]==' '){ s.replace(i,1,"%20");原创 2022-03-15 00:48:58 · 1487 阅读 · 0 评论 -
剑指 Offer 06. 从尾到头打印链表
剑指 Offer 06. 从尾到头打印链表1.用栈实现(基础解法)遍历单链表,将每个链表元素压入栈底,最后再依次弹出push进入vector即可/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {原创 2021-02-11 01:42:33 · 122 阅读 · 0 评论 -
剑指 Offer 54. 二叉搜索树的第k大节点
剑指 Offer 54. 二叉搜索树的第k大节点1.先序遍历+数组存储所有节点i.定义一个vector,用来存储二叉树的所有节点ii.先序遍历将所有节点值push进去(下标从0开始)iii.从大到小排列一下(调用sort,注意sort默认从小到大,如果要从大到小,必须加上greater<int>())/** * Definition for a binary tree node. * struct TreeNode { * int val; *原创 2021-02-08 20:20:42 · 89 阅读 · 0 评论 -
剑指 Offer 17. 打印从1到最大的n位数
剑指 Offer 17. 打印从1到最大的n位数1.pow版(傻瓜暴力版)class Solution {public: vector<int> printNumbers(int n) { vector<int>ans; for(int i=1;i<=pow(10,n)-1;++i)ans.push_back(i); return ans; }};执行用时:8 ms, 在所有 C++ 提交中击败了8原创 2021-02-06 02:31:59 · 130 阅读 · 0 评论 -
剑指 Offer 22. 链表中倒数第k个节点
剑指 Offer 22. 链表中倒数第k个节点1.基础解法(1)若当前链表是空链表或者只有头节点(只有一个元素),那么就直接返回(2)遍历整个链表记录链表长度(3)计算一下倒数第k个节点从左往右数是第几个(4)再遍历一遍原链表,遍历我们在第三步计算出的值就是答案举个例子:10->20->30->40->50, 和 k = 2.返回链表40->50链表内有5个元素,5-2=3,遍历一次,head=20,两次,head=30,三次,head=40/** * De原创 2021-02-06 02:26:07 · 127 阅读 · 0 评论 -
剑指 Offer 05. 替换空格
剑指 Offer 05. 替换空格1.利用string的insert和erase,用法在注释中已标明class Solution {public: string replaceSpace(string s) { //int len=s.length();这里有坑点 for(int i=0;i<s.length();++i){ if(s[i]==' '){ s.erase(i,1);//s.erase原创 2021-02-06 02:12:35 · 95 阅读 · 0 评论 -
剑指 Offer 27. 二叉树的镜像
剑指 Offer 27. 二叉树的镜像1.递归--DFS(后序遍历)思路:后序遍历,不断递归交换当前节点的左右孩子位置即可,从后往前换/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NUL原创 2021-02-05 01:15:04 · 80 阅读 · 0 评论 -
剑指 Offer 58 - II左旋转字符串 && 剑指 Offer 55 - I二叉树的深度
力扣剑指offer刷题博客第一篇,后续会更完所有题目,题库链接https://leetcode-cn.com/problemset/lcof/每道题力求多种解法!!!左旋转字符串1.暴力做法class Solution {public: string reverseLeftWords(string s, int n) { int len=s.length(); string ans=""; for(int i=n;i<.原创 2021-02-04 22:54:00 · 247 阅读 · 2 评论