zoukankan      html  css  js  c++  java
  • leetcode二分查找训练题

    二分查找训练

    训练二分查找,以便应用更复杂场景

    package leetcodemid.二分专题;
    
    /**
     * 35. 搜索插入位置
     * 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
     *
     * 请必须使用时间复杂度为 O(log n) 的算法。
     *
     *
     *
     * 示例 1:
     *
     * 输入: nums = [1,3,5,6], target = 5
     * 输出: 2
     * 示例 2:
     *
     * 输入: nums = [1,3,5,6], target = 2
     * 输出: 1
     * 示例 3:
     *
     * 输入: nums = [1,3,5,6], target = 7
     * 输出: 4
     * 示例 4:
     *
     * 输入: nums = [1,3,5,6], target = 0
     * 输出: 0
     * 示例 5:
     *
     * 输入: nums = [1], target = 0
     * 输出: 0
     *
     *
     * 提示:
     *
     * 1 <= nums.length <= 104
     * -104 <= nums[i] <= 104
     * nums 为无重复元素的升序排列数组
     * -104 <= target <= 104
     */
    public class SearchInsert {
        //普通二分查找
        public static int searchInsert(int[] nums, int target) {
            int l = 0;
            int r = nums.length - 1;
            int ans = nums.length;//不在数组内
            while (l <= r) {
                int mid = (l + r) / 2;
                if (nums[mid] < target) {
                    l = mid + 1;
    
                } else if (nums[mid] >= target) {
                    ans = mid;
                    r = mid - 1;
                }
            }
            return ans;
        }
    
        public static void main(String[] args) {
            int[] nums = {1, 3, 5, 6};
            int target = 5;
            System.out.println(searchInsert(nums, target));
        }
    }
    
    
  • 相关阅读:
    基于Ubuntu Jeos打造自己的精简版Linux服务器
    35 vs 53怎么裁
    父母在,不远游
    linux deepin是基于linux mint修改
    novell
    Sahi
    virtualbox on windows store vdi on ndfs due the file will bigger than 4gb
    在Linux下配置邮件系统
    CSS3 backgroundsize 属性
    dede:list及dede:arclist 按权重排序的方法
  • 原文地址:https://www.cnblogs.com/xiaoshahai/p/15666420.html
Copyright © 2011-2022 走看看