摘要: 个人感觉做这道题如果没有之前做过一些其他丑数题的经历还是比较吃力的,贴个官方解法。 class Solution { public int nthSuperUglyNumber(int n, int[] primes) { int[] dp = new int[n + 1]; dp[1] = 1; 阅读全文
posted @ 2021-08-09 10:10 毅毅毅毅毅 阅读(48) 评论(0) 推荐(0)
摘要: 先上结论:在我们常用的类中equals被重写后,作用就是为了比较对象的内容,==是比较对象的内存地址。但并不能说所有的equals方法就是比较对象的内容。 Java 中的==: 1、对于对象引用类型:“==”比较的是对象的内存地址。 比如说: String s1 = "Hello"; String 阅读全文
posted @ 2021-08-08 15:18 毅毅毅毅毅 阅读(205) 评论(0) 推荐(0)
摘要: 题目描述: 思路: 这道题算是很典型的动态规划问题了,不多赘述,自底向上,dp数据求解。 阅读全文
posted @ 2021-08-08 09:38 毅毅毅毅毅 阅读(26) 评论(0) 推荐(0)
摘要: 思路与算法 由于题目需要我们求出「访问所有节点的最短路径的长度」,并且图中每一条边的长度均为 11,因此我们可以考虑使用广度优先搜索的方法求出最短路径。 在常规的广度优先搜索中,我们会在队列中存储节点的编号。对于本题而言,最短路径的前提是「访问了所有节点」,因此除了记录节点的编号以外,我们还需要记录 阅读全文
posted @ 2021-08-06 10:15 毅毅毅毅毅 阅读(139) 评论(0) 推荐(0)
摘要: 这道题最初我的想法是遍历+BFS但时间超了,所以在这里给一个官方的解答: 深度优先搜索 + 三色标记法根据题意,若起始节点位于一个环内,或者能到达一个环,则该节点不是安全的。否则,该节点是安全的。 我们可以使用深度优先搜索来找环,并在深度优先搜索时,用三种颜色对节点进行标记,标记的规则如下: 白色( 阅读全文
posted @ 2021-08-05 10:29 毅毅毅毅毅 阅读(43) 评论(0) 推荐(0)
摘要: 题目描述: 平明伞兵解法: 既然要求满足三角形要求的三边,简单来说,就是最短两边之和大于第三边,所以,第一步Arrays.sort()。先排序,然后直接伞兵暴力法,三重循环。当然最后肯定是能跑出来的,但是复杂度之大。 思考后的解法: 其实在写暴力的时候,就应该心理有数,我们其实做了许多大量的重复工作 阅读全文
posted @ 2021-08-04 09:48 毅毅毅毅毅 阅读(84) 评论(0) 推荐(0)
摘要: 平民解法: 既然是找最小数组,那就得到一个排序好的数组,然后直接和初试数组比对,用一个left,right分别记录从最初开始不同,到最后不同的小标,最后左右做差再加一,就能得到长度。 其他参考解法: 链接:https://leetcode-cn.com/problems/shortest-unsor 阅读全文
posted @ 2021-08-03 21:49 毅毅毅毅毅 阅读(62) 评论(0) 推荐(0)
摘要: 种子填充算法原理在网上很多地方都能找到,这篇是继上篇扫描线算法后另一种填充算法,直接上实现代码啦0.0 我的实现只是实现了种子填充算法,但是运行效率不快,如果大佬有改进方法,欢迎和我交流,谢谢! 最后还是贴个截图(先在面板里点击点,鼠标移出面板填充): package PolygonScanning 阅读全文
posted @ 2019-11-12 16:15 毅毅毅毅毅 阅读(1716) 评论(0) 推荐(0)
摘要: 首先说一下,教科书上的扫描线算法确实是用c++很好实现,而且网上有很多源码,而java实现的基本没有(可能是我没看到),所以还是打算自己码。 对于扫描线的实现过程,我只在这里大概讲下书本上的内容(自己去看),主要还是讲一下自己实现时算法的改动和实现方法。 扫描线算法:顾名思义,就是从Ymin开始扫描 阅读全文
posted @ 2019-10-29 23:57 毅毅毅毅毅 阅读(1307) 评论(2) 推荐(1)