leetcode
文章平均质量分 56
coding-day
程序员要有积累
展开
-
精选力扣300+道算法题目录帖
分类:1、数组2、字符串3、链表4、数学5、哈希表6、二分查找7、栈8、双指针9、贪心算法10、回溯算法11、动态规划12、广度优先搜索(BFS)13、深度优先搜索(DFS)14、树参考链接:转载 2021-10-15 15:33:52 · 196 阅读 · 0 评论 -
LeetCode刷题目录
按照分类类刷题链表1、反转链表2、链表中环的入口节点3、判断链表中是否有环4、链表中倒数第K个节点5、链表中倒数第K个数6、链表中的节点每k个一组翻转7、合并有序链表8、删除链表的倒数第n个节点9、两个链表节点的第一个公节点10、删除有序链表中重复出现的元素11、环形链表的约瑟夫环问题12、重排链表13、删除有序链表中重复的元素数组14、螺旋矩阵15、斐波那契数列16、重建二叉树17、数组中相加为0的三元组18、在转动过的有序数组中寻找目标值19、买卖股票的最佳时机原创 2021-08-29 10:56:24 · 285 阅读 · 0 评论 -
leetcode-二叉树的中序遍历-94
题目描述:给定一个二叉树的根节点 root ,返回它的 中序 遍历。class Solution{ public List<Integer>inorderTraversal(TreeNode root){ List<Integer>res=new ArrayLsit<Integer>(); inorder(root,res); return res; } public void inorder(Tree原创 2021-06-24 12:13:11 · 96 阅读 · 0 评论 -
java面试编程(手撕代码)
剑指offer:JZ1class Solution{public boolean Find(vector<vector<int>>array,int target){ int rowCount=array.size();//行 int colCount=array[0].size();//列 int i,j; for(i=rowCount-1,j=0;i>=0&&j<colCount) {原创 2020-08-07 11:58:39 · 2296 阅读 · 0 评论 -
leetcode-day06-239-滑动窗口的最大值
1.暴力法遍历每个滑动窗口,找到最大值。则一共有N-k+1个滑动窗口,每个有K个元素,于是算法的复杂度为O(Nk),表现较差。class Solution{ public int[]maxSlidingWindow(int[]nums,int k){ int n=nums.length;//一个数组中有n个数字,每个窗口中最大值有k个。 if(n*k==0...原创 2019-12-24 00:26:20 · 188 阅读 · 0 评论 -
leetcode-day05-287-寻找重复数
方法一:排序对数组中的排序,重复的数据排序前后数组相邻。class Solution{ public int findDuplicate(int[] nums){ Arrays.sort(nums); for(int i=1;i<nums.length;i++){ if(nums[i]==nums[i-1]){ ...原创 2019-12-22 23:37:47 · 90 阅读 · 0 评论 -
leetcode-day04-146:LRU缓存机制
LRU算法:是一种缓存淘汰策略,计算机的储存容量有限,储存满了就要删除一些内容,给新内容腾位置,删除没用的数据,保存有用的缓存。问题是如何进行删除和保留的选择。LRU 缓存淘汰算法就是一种常用策略。LRU 的全称是 Least Recently Used,也就是说我们认为最近使用过的数据应该是是「有用的」,很久都没用过的数据应该是无用的,内存满了就优先删那些很久没用过的数据。回归到具体算法:...原创 2019-12-21 21:11:04 · 111 阅读 · 0 评论 -
leetcode-day04-10:合并二叉树
思路:有两棵树,然后相同节点对应相加求和,空节点的话则表示为0,则表示X+0即可。那么对于树这样的结构应该怎么做到对应的节点对应相加。是该先遍历树存储,还是怎么?解答:两棵树同时进行前序遍历,并将对应的节点进行合并。在遍历时,如果两棵树的当前节点均不为空,我们就将它们的值进行相加,并对它们的左孩子和右孩子进行递归合并;如果其中有一棵树为空,那么我们返回另一颗树作为结果;如果两棵树均为空,此...原创 2019-12-21 10:45:02 · 115 阅读 · 0 评论 -
leetcode-day03-279:把二叉搜索树传化成累加树
回溯算法:白话:回溯法可以理解为通过选择不同的岔路口寻找目的地,一个岔路口一个岔路口的去尝试找到目的地。如果走错了路,继续返回来找到岔路口的另一条路,直到找到目的地。递归:递归算法是一种直接或者间接调用自身函数或者方法的算法。解决思路:在递归方法中,我们维护一些递归调用过程中可以访问和修改的全局变量。首先我们判断当前访问的节点是否存在,如果存在就递归右子树,递归回来的时候更新总和和当前...转载 2019-12-18 22:47:15 · 93 阅读 · 0 评论 -
leetcode-day02-207 课程表
有向无环图:有向无环图的定义是从一个点出发,不会回到出发点。拓扑排序:实质是对有向图的定点排成一个线性序列排序步骤:入度表的构造过程:在有向图中选一个没有前驱的顶点并且输出从图中删除该顶点和所有以它为尾的弧(白话就是:删除所有和它有关的边)重复上述两步,直至所有顶点输出,或者当前图中不存在无前驱的顶点为止,后者代表我们的有向图是有环的,因此,也可以通过拓扑排序来判断一个图是否有环。...原创 2019-12-17 21:48:33 · 116 阅读 · 0 评论 -
leetcode-day01-448找到数组中缺失的数字
鸽巢理论:又称抽屉原理,就是大约等于n+1个元素放到n个集合中,至少有一个巢中有两只鸽子异或交换:解题思路:/** * * 找出 1 - n 中没有出现的数字。不能使用额外的空间,两次循环时间复杂度为 2O(n),即为 O(n)。 * * 解题思路:使用数组的下标来标记数字的出现于否,通过一遍遍历即可标记出全部已经出现的数组 * *...原创 2019-12-16 21:34:39 · 185 阅读 · 0 评论 -
leetcode 动态规划,最小路径和
题目描述:java代码:class Solution { public int minPathSum(int[][] grad) { for(int i=1;i<grad.length;i++){ grad[i][0]+=grad[i-1][0];// grad[i][0]=grad[i][0]+grad[i-1][0]; ...原创 2019-05-14 11:51:55 · 187 阅读 · 0 评论