leecode刷题
文章平均质量分 90
记录leecode的刷题感悟和总结
ryontang
这个作者很懒,什么都没留下…
展开
-
剑指offer专题
p76 把字符串转换成整数strToInt()主要思路:1. 先判断正负号的存在sign2. 从正负号之后开始遍历字符串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 · 96 阅读 · 0 评论 -
面试汇总
主线科技的交流:收获很多,因为很多东西做的类似首先说,就是这个depth_cluster, 如何针对钱原创 2021-02-01 16:42:05 · 560 阅读 · 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 · 133 阅读 · 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 · 83 阅读 · 0 评论 -
逆波兰表达式_四则表达式
1. 逆波兰表达式实现的四则运算2. 如何把中缀表达式转换为后缀表达式原创 2020-09-03 22:11:32 · 199 阅读 · 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 · 94 阅读 · 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 · 1077 阅读 · 0 评论 -
几数之和
560第一题:原创 2020-10-03 19:57:56 · 238 阅读 · 0 评论 -
并查集
查并集查并集算法用于查找一个有向图是否有环具体解释见一灯大神主要的思想是:两个函数:find根节点合并某两个节点输入一个图,建立一个vector parent, vector rank遍历这个图,对他的边进行遍历,对与某边的两个节点找其1.根节点,2.合并某两个节点如果合并两个节点返回0,说明他们有公共根节点,同时这两个节点又是连接的,此时图有环代码如下:#include <stdio.h>#include <stdlib.h>#include <原创 2020-09-28 20:28:56 · 282 阅读 · 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 · 655 阅读 · 0 评论 -
刷题的细节知识点
如何判断括号的有效性labuladong原创 2020-08-01 20:21:06 · 110 阅读 · 0 评论 -
BFS
算法框架参考来源:作者:labladong网址问题的本质就是让你在一幅「图」中找到从起点 start 到终点 target 的最近距离,这个例子听起来很枯燥,但是 BFS 算法问题其实都是在干这个事儿* 本质上就是一幅「图」,让你从一个起点,走到终点,* 问最短路径。这就是 BFS 的本质,框架搞清楚了直接默写就好。记住下面这个框架就ok了:# 计算起点start 到 终点 target 的最近距离int BFS(Node start, Node target){ Queue<原创 2020-07-29 20:18:14 · 190 阅读 · 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 · 124 阅读 · 0 评论