bm19bm7

bm19bm7_第1张图片bm19bm7_第2张图片bm19bm7_第3张图片bm19bm7_第4张图片为什么不定义如果两点相等呢
bm19bm7_第5张图片等于的话峰值统一取右
以右来比较
波峰就行 不一定是最大的

bm19bm7_第6张图片在这里插入代码片

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;
    }
}

bm19bm7_第7张图片
fast slow 两个隔一定距离
看下思路
估计:1 判空 边际
2 定义快慢
3 去走 但俩隔了一个距离 让快先走 到尾部 然后一起走 之间隔了一个距离 这个距离就和入口有关
看下
最后return就行
bm19bm7_第8张图片
居然没拍过
bm19bm7_第9张图片bm19bm7_第10张图片bm19bm7_第11张图片bm19bm7_第12张图片在这里插入代码片

/*
 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;      
    }
}

bm19bm7_第13张图片
bm19bm7_第14张图片bm19bm7_第15张图片bm19bm7_第16张图片bm19bm7_第17张图片往下看 没看懂
防止溢出 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++]:表示指向下一个数组元素值;
bm19bm7_第18张图片bm19bm7_第19张图片
bm19bm7_第20张图片
没整明白⊙ω⊙
先这样吧 22:53

你可能感兴趣的:(链表)