力扣153.寻找旋转排序数组中的最小值(java)

力扣153.寻找旋转排序数组中的最小值

  • 题目
  • 思路
  • 代码

LeetCode笔记汇总

题目

力扣153.寻找旋转排序数组中的最小值(java)_第1张图片
力扣153.寻找旋转排序数组中的最小值(java)_第2张图片

力扣153.寻找旋转排序数组中的最小值(java)_第3张图片

思路

  1. 直接遍历数组,输出最小值即可
    先定义一个ans,初始值为Integer.MAX_VALUE,然后在数组中寻找小于ans的值并替换
    遍历完之后返回ans
  2. 因为原数组时升序排列的,故数组中左边的元素一定比右边的元素小。因此可以在数组中定义一个指针,如果这个指针左边的值小于右边的值,就返回右边的值。如果遍历完之后还没有return,则返回第一个元素

代码

class Solution {
    public int findMin(int[] nums) {
        int ans = Integer.MAX_VALUE;
        for(int i : nums)   ans = ans < i ? ans : i;
        return ans;
    }
}

class Solution {
    public int findMin(int[] nums) {
        for(int i = 0; i < nums.length - 1; i++){
            if(nums[i] > nums[i+1]) return nums[i+1];
        }
        return nums[0];
    }
}

你可能感兴趣的:(LeetCode笔记,指针,数据结构,leetcode,算法)