目录
这个题目的思路非常简单和清晰,但我一开始理解有一些问题,直接用一个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 图中的最长环
思路
代码
【科研工具】使用Zotero进行文献管理(插件介绍)
PyTorch深度强化学习中蒙特卡洛策略梯度法在短走廊环境(CartPole-v0)中的实战(超详细 附源码)
GPIO实验
[安卓逆向]IDA Pro的认识及使用
换脸插件升级导致SDWebUI无法启动cannot import name ‘Undefined‘ from ‘pydantic.fields‘
Ubuntu下jax安装与使用
SpringMVC学习篇(十一)
微信小程序开发之路⑧
protobuf序列化和反序列化原理