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 · 176 阅读 · 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 · 165 阅读 · 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 · 59 阅读 · 0 评论 -
java面试编程(手撕代码)
剑指offer: JZ1 class 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 · 2169 阅读 · 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 · 108 阅读 · 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 · 76 阅读 · 0 评论 -
leetcode-day04-146:LRU缓存机制
LRU算法:是一种缓存淘汰策略,计算机的储存容量有限,储存满了就要删除一些内容,给新内容腾位置,删除没用的数据,保存有用的缓存。问题是如何进行删除和保留的选择。 LRU 缓存淘汰算法就是一种常用策略。LRU 的全称是 Least Recently Used,也就是说我们认为最近使用过的数据应该是是「有用的」,很久都没用过的数据应该是无用的,内存满了就优先删那些很久没用过的数据。 回归到具体算法: ...原创 2019-12-21 21:11:04 · 91 阅读 · 0 评论 -
leetcode-day04-10:合并二叉树
思路: 有两棵树,然后相同节点对应相加求和,空节点的话则表示为0,则表示X+0即可。 那么对于树这样的结构应该怎么做到对应的节点对应相加。是该先遍历树存储,还是怎么? 解答: 两棵树同时进行前序遍历,并将对应的节点进行合并。在遍历时,如果两棵树的当前节点均不为空,我们就将它们的值进行相加,并对它们的左孩子和右孩子进行递归合并;如果其中有一棵树为空,那么我们返回另一颗树作为结果;如果两棵树均为空,此...原创 2019-12-21 10:45:02 · 76 阅读 · 0 评论 -
leetcode-day03-279:把二叉搜索树传化成累加树
回溯算法: 白话:回溯法可以理解为通过选择不同的岔路口寻找目的地,一个岔路口一个岔路口的去尝试找到目的地。如果走错了路,继续返回来找到岔路口的另一条路,直到找到目的地。 递归: 递归算法是一种直接或者间接调用自身函数或者方法的算法。 解决思路: 在递归方法中,我们维护一些递归调用过程中可以访问和修改的全局变量。首先我们判断当前访问的节点是否存在,如果存在就递归右子树,递归回来的时候更新总和和当前...转载 2019-12-18 22:47:15 · 75 阅读 · 0 评论 -
leetcode-day02-207 课程表
有向无环图:有向无环图的定义是从一个点出发,不会回到出发点。 拓扑排序:实质是对有向图的定点排成一个线性序列 排序步骤: 入度表的构造过程: 在有向图中选一个没有前驱的顶点并且输出 从图中删除该顶点和所有以它为尾的弧(白话就是:删除所有和它有关的边) 重复上述两步,直至所有顶点输出,或者当前图中不存在无前驱的顶点为止,后者代表我们的有向图是有环的,因此,也可以通过拓扑排序来判断一个图是否有环。...原创 2019-12-17 21:48:33 · 94 阅读 · 0 评论 -
leetcode-day01-448找到数组中缺失的数字
鸽巢理论:又称抽屉原理,就是大约等于n+1个元素放到n个集合中,至少有一个巢中有两只鸽子 异或交换: 解题思路: /** * * 找出 1 - n 中没有出现的数字。不能使用额外的空间,两次循环时间复杂度为 2O(n),即为 O(n)。 * * 解题思路:使用数组的下标来标记数字的出现于否,通过一遍遍历即可标记出全部已经出现的数组 * *...原创 2019-12-16 21:34:39 · 142 阅读 · 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 · 146 阅读 · 0 评论