目录
这个题目的思路非常简单和清晰,但我一开始理解有一些问题,直接用一个set记录不同的数字的个数即可。
- class Solution {
- public int minimumOperations(int[] nums) {
- Set
st = new HashSet<>(); - for(int num:nums){
- if(num!=0){
- st.add(num);
- }
- }
- return st.size();
- }
- }
一开始没有思路,其实这题的思路就是贪心,因为一旦数组排好序,以1,2,3的大小去组成这样的分组就可以符合题目的要求,剩下的不足分组可以直接加到最后一组。
- class Solution {
- public int maximumGroups(int[] grades) {
- //Arrays.sort(grades);
- int n = grades.length;
- int i = 1;
- int count = 0;
- while(n>=i){
- n-=i;
- i++;
- count++;
- }
- return count;
- }
- }
一开始思路是从两个节点然后去找一个交汇的点,但是这样找的话两个节点的移动速度不一样,不是很好实现,这个思路不对。
解题思路就是和题目类似的,维护两个数组
d1记录node1到各个节点的距离 初始化为最大值
d2记录node2到各个节点的距离 初始化为最大值
遍历所有的节点0<=i 特殊情况是 1->2 2->1 这种成环的图可能返回的不是唯一答案
方法一 dfs直接遍历 方法二 拓扑排序 找到不在环内的直接用vis标记,不用再用新的数组 方法一 自己写的dfs 总觉得有一些细节没想明白 方法二 方法三 记录访问时间法 代码
代码
题目4 图中的最长环
思路
代码
马齿苋多糖偶联顺铂复合物/黄连素偶联顺铂化合物/载顺铂mPEg-PGA纳米微球制备方法
Socket编程-应用编程接口(API)--套接字(及其函数介绍)
SpringBoot打成jar运行后无法读取resources里的文件
回归预测 | Matlab实现OOA-HKELM鱼鹰算法优化混合核极限学习机多变量回归预测
Blazor实战——Known框架增删改查导
JAVA注解
浅谈如何学习微信小程序
99 大促来袭,利用 MSE 服务自治体系为业务保驾护航
华为云云耀云服务器L实例评测| 之性能测试