
LeetCode刷题总结
记录一下刷题过程中对算法的理解
两颗橘子树
java/python/机器学习
群智能算法
展开
-
刷题小技巧 参考数据范围中包含的信息
参考数据大小为10 ^ 5一般只能有nlogn的解法,这个时候请考虑一下二分,归并等解法。有些时候可以动态规划n^2的解法参考数据大小<10 ^ 5可以尝试o(n**2)甚至o(n^3)的解法,比如动态规划,遍历等等大于10 ^ 5老老实实o(n) 或者nlgnn在32以内二进制状态压缩具体情况具体分析 一般贪心可以o(n)...原创 2021-01-04 19:53:09 · 180 阅读 · 0 评论 -
leetcode第219场字节跳动周赛总结
leetcode第219场周赛总结这次的周赛后两道题都是动态规划的,最后一题想复杂了 没做出来,其实也没有那么难第一题题目链接: 比赛中的配对次数.解题思路:看图说话型题目,没什么好写的class Solution { public int numberOfMatches(int n) { if(n == 1) return 0; int ans = 0; while(n >= 2){ ans += n / 2原创 2020-12-15 11:03:37 · 212 阅读 · 0 评论 -
leetcode 第216场周赛总结
leetcode第216场周赛总结刷题也有一段时间了,准备开始记录一下自己参加周赛的过程,上周因为礼拜天有事没办法直接参与。于是只能搞一下虚拟竞赛尝试一下,没想到这周的题比较简单,错过了一个刷分的机会[狗头]。从这周开始,我会记录一下自己的周赛过程和当时的想法。第一题检查两个字符串数组是否相等题目链接: link.给你两个字符串数组 word1 和 word2 。如果两个数组表示的字符串相同,返回 true ;否则,返回 false 。数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字原创 2020-11-23 16:29:37 · 155 阅读 · 0 评论 -
dijkstra算法求单源最短路径 java版本
dijkstra算法求单源最短路径 java版本解析dijkstra原理具体的原理网上有太多了,我就不过多的赘述,[具体原理请点击](https://www.cnblogs.com/skywang12345/p/3711512.html)代码及分析关键是要利用优先队列的性质,找出剩余未标记节点的最小距离节点来进下一步。因为已标记的节点可以看做是一个整体,其他节点到这个整体的最小值节点也就是所求的下一个最短路径节点。举例:当前网络整体为{w}点a 到 w 距离为 1点b 到 w 距离为 2如原创 2020-10-26 19:56:35 · 267 阅读 · 0 评论 -
leetcode 730题 区间dp解法带详细注释
区间dp + 去重看人家的题解 自己写了下注释题目链接public class Solution730 { public int countPalindromicSubsequences(String s) { int n = s.length(); int[][] dp = new int[n][n]; // dp[i][j]表示[i,j]下标范围内的回文子序列数量 char[] ch = s.toCharArray(); fo原创 2020-08-03 21:46:13 · 275 阅读 · 0 评论 -
LeetCode 根据题目给定的输入生成树
在刷LeetCode的时候,经常碰到树模型的题目,但是他给的输入是一个数组,类似:[5,4,8,11,null,13,4,7,2,null,null,5,1]而LeetCode不开会员又没办法调试,所以需要在本地的IDEA上建树调试,具体代码如下:树类:public class TreeNode { public int val; public TreeNode left; public TreeNode right; public TreeNode(int x)原创 2020-07-08 21:43:31 · 620 阅读 · 0 评论 -
动态规划数组降维
今天写每日一题的时候看到一道动态规划的题目:最长重复子数组因为更新DP数组只依赖其对角线上的元素,所以可以在空间上进行优化,将2维的数组降为一维,以下是降维前后代码:降维前 public int findLength(int[] A, int[] B) { int max = 0; int[][] dp = new int[A.length + 1][B.length + 1]; for (int i = 1; i <= A.length原创 2020-07-05 19:33:44 · 401 阅读 · 0 评论