


为什么不定义如果两点相等呢
等于的话峰值统一取右
以右来比较
波峰就行 不一定是最大的

在这里插入代码片
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型
*/
public int findPeakElement (int[] nums) {
// write code here
int 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