![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
leecode刷题
文章平均质量分 90
记录leecode的刷题感悟和总结
ryontang
这个作者很懒,什么都没留下…
展开
-
剑指offer专题
p76 把字符串转换成整数 strToInt() 主要思路: 1. 先判断正负号的存在sign 2. 从正负号之后开始遍历字符串 if(str[i]>='0' && str[i]<='9'){ num+=num*10+str[i]-'0'; } p3 找出数组中重复的数字 主要思路: 就是num[i]与nums[nums[i]]之间的关系 p3不修改数组找重复数组 方法一 暴力 方法二 二分法 for(int i=0;i<nums.size();i++){ // 先原创 2021-02-07 19:49:57 · 89 阅读 · 0 评论 -
面试汇总
主线科技的交流: 收获很多,因为很多东西做的类似 首先说,就是这个depth_cluster, 如何针对钱原创 2021-02-01 16:42:05 · 538 阅读 · 0 评论 -
剑指offer基本操作
leetcode61.旋转链表 主要思路: 快慢指针,快指针先走k步,然后快指针到达尾结点,交换指针的关系 ListNode* rotateRight(ListNode* head, int k) { if(!head) return NULL; int n =0; for(auto p=head;p;p=p->next) n++; k%=n; // 快慢指针 auto first=head,second=head;原创 2020-09-19 17:05:05 · 121 阅读 · 0 评论 -
笔试题收录及思考
文章目录0918畅行智能第一题青蛙爬楼梯(leetcode 70)第二题 55. 跳跃游戏 0918畅行智能 第一题青蛙爬楼梯(leetcode 70) 简单分析就是个斐波拉契数列 class Solution { public: // n是一个正整数 //本问题其实常规解法可以分成多个子问题,爬第n阶楼梯的方法数量,等于 2 部分之和 //爬上 n-1n−1 阶楼梯的方法数量。因为再爬1阶就能到第n阶 //爬上 n-2n−2 阶楼梯的方法数量,因为再爬2阶就能到第n阶原创 2020-09-18 20:47:46 · 75 阅读 · 0 评论 -
逆波兰表达式_四则表达式
1. 逆波兰表达式实现的四则运算 2. 如何把中缀表达式转换为后缀表达式原创 2020-09-03 22:11:32 · 188 阅读 · 0 评论 -
排序算法
选择排序(简单选择排序) 主要思想: 假设smallest=0最小,遍历i+1到size()-1, 如果发现有比i更小的,smallest更新记录 每次都要swap 不稳定,若一次j循环中,遇到2两次,2’与2‘’都为最小,那么swap(array, i,2’)与swap(array, i,2’‘), 2’与2’‘的相对位置发生的变化,不稳定。 交换排序(冒泡排序) 主要思路: 稳定的 相邻两两交换; 交换排序(快速排序) 选定Pivot中心轴(任意的,程序默认选arry[0]) 将大于Piv原创 2020-09-11 21:33:12 · 87 阅读 · 0 评论 -
最短路径/路径和最小
62 不同路径 主要解题思路: 动态规划: dp[i,j]: 从起点[0,0]到[i,j]走到[i,j]的路径数 base case: i==0, dp[0][j]=1; j==0, dp[i][0]=1; i==0 &j==0, dp[0][0]=1; 状态转移方程: dp[i][j]=dp[i-1][j]+dp[i][j-1] class Solution { public: int uniquePaths(int m, int n) { vector<vect原创 2020-09-09 09:45:29 · 1000 阅读 · 0 评论 -
几数之和
560 第一题:原创 2020-10-03 19:57:56 · 229 阅读 · 0 评论 -
并查集
查并集 查并集算法用于查找一个有向图是否有环 具体解释见一灯大神 主要的思想是: 两个函数: find根节点 合并某两个节点 输入一个图,建立一个vector parent, vector rank 遍历这个图,对他的边进行遍历,对与某边的两个节点找其1.根节点,2.合并某两个节点 如果合并两个节点返回0,说明他们有公共根节点,同时这两个节点又是连接的,此时图有环 代码如下: #include <stdio.h> #include <stdlib.h> #include <原创 2020-09-28 20:28:56 · 234 阅读 · 0 评论 -
贪心算法_区间调度问题
引用:[labuladong](https://labuladong.gitbook.io/algo/dong-tai-gui-hua-xi-lie/tan-xin-suan-fa-zhi-qu-jian-tiao-du-wen-ti) 一、问题概述 言归正传,本文解决一个很经典的贪心算法问题 Interval Scheduling (区间调度问题)。给你很多形如 [start, end] 的闭区间, 请你设计一个算法,算出这些区间中最多有几个互不相交的区间。 二、贪心解法: 1. 从区间集合 intvs原创 2020-08-02 10:16:30 · 639 阅读 · 0 评论 -
刷题的细节知识点
如何判断括号的有效性 labuladong原创 2020-08-01 20:21:06 · 103 阅读 · 0 评论 -
BFS
算法框架 参考来源: 作者:labladong 网址 问题的本质就是让你在一幅「图」中找到从起点 start 到终点 target 的最近距离,这个例子听起来很枯燥, 但是 BFS 算法问题其实都是在干这个事儿 * 本质上就是一幅「图」,让你从一个起点,走到终点, * 问最短路径。这就是 BFS 的本质,框架搞清楚了直接默写就好。 记住下面这个框架就ok了: # 计算起点start 到 终点 target 的最近距离 int BFS(Node start, Node target){ Queue<原创 2020-07-29 20:18:14 · 183 阅读 · 0 评论 -
链表
160.相交链表(中智行) // 题解: 先遍历自己再遍历对方 // 时间复杂度O(m + n) 空间复杂度O(1) ListNOde* getIntersectionNode(ListNode* headA, ListNode* headB){ ListNode* p = headA, *q = headB; while(p!=q){ // p=q 包含空指针的情况,也可以返回 // if用if(p)而不是if(p->next),当面临两个/// 链原创 2020-07-16 09:43:05 · 120 阅读 · 0 评论