为什么不定义如果两点相等呢
等于的话峰值统一取右
以右来比较
波峰就行 不一定是最大的
在这里插入代码片
import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param nums int整型一维数组 * @return int整型*/public int findPeakElement (int[] nums) {// write code hereint left=0;int right=nums.length-1;while(left<right){int mid=(left+right)/2;if(nums[mid]>nums[mid+1]){//左大于右,峰值取左right=mid;//左区间}else {//取右left=mid+1;}}return right;}
}
fast slow 两个隔一定距离
看下思路
估计:1 判空 边际
2 定义快慢
3 去走 但俩隔了一个距离 让快先走 到尾部 然后一起走 之间隔了一个距离 这个距离就和入口有关
看下
最后return就行
居然没拍过
在这里插入代码片
/*public class ListNode {int val;ListNode next = null;ListNode(int val) {this.val = val;}
}
*/
public class Solution {
public ListNode hasCycle(ListNode head){if(head==null){return null;}ListNode fast=head;ListNode slow=head;while(fast!=null&&fast.next!=null){fast=fast.next.next;slow=slow.next;if(fast==slow){return fast;}}return null;
}public ListNode EntryNodeOfLoop(ListNode pHead) {ListNode slow=hasCycle(pHead);//相遇地方//fast从头开始走,slow从相遇地方开始走,ListNode fast=pHead;
if(slow==null){return null;
}
//无环判断 head==null 已在上面是否有环讨论过 对于有环的结果 相遇节点 进行再分析 边际条件
while(fast!=slow){fast=fast.next;slow=slow.next;}return slow; }
}
往下看 没看懂
防止溢出 res=res%mod
在这里插入代码片
添加链接描述
添加链接描述
添加链接描述
与个数有关
int[] res = new int[n];添加链接描述
添加链接描述
一维数组添加链接描述添加链接描述
1.定义数组
两种定义数组的语法:(1)数据类型 [ ] 数组名 = new 数据类型 [ 数组长度 ];
(2)数据类型 数组名 [ ] = new 数据类型 [ 数组长度 ];
ok
int[] data添加链接描述
添加链接描述
int[] data 啥意思添加链接描述添加链接描述
定义一个名字为data的数组存原数组添加链接描述
int mid = (left + right) / 2;
int a=0.5 a是多少
添加链接描述
int a=1/2; a是多少
添加链接描述
a=11/2=5,因为11和2均是整数,计算机会按照整数进行除法计算,结果也是整数结果的5
那就是0
temp[j++]添加链接描述
a[i++]j++添加链接描述
添加链接描述
数组 a[j++]是什么意思添加链接描述添加链接描述
添加链接描述添加链接描述
数组a[i++]什么意思添加链接描述
2、a[i++]:表示指向下一个数组元素值;
没整明白⊙ω⊙
先这样吧 22:53