zoukankan      html  css  js  c++  java
  • 【嘎】数组-搜索插入位置

    题目:

    给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

    你可以假设数组中无重复元素。

    解答:(其中一开始没有注意到target > nums[len - 1] 的情况)

    class Solution {
        public int searchInsert(int[] nums, int target) {
            int len = nums.length;
            if (len == 0) {
                return 0;
            }
            int res = 0;
            for (int i = 0; i < len-1; i++) {
                if (nums[i] < target && target < nums[i+1]) {
                    res = ++i;
                    break;
                } else {
                    if (nums[i] == target) {
                        res = i;
                        break;
                    }
                    if (nums[i+1] == target) {
                        res = i+1;
                        break;
                    }
                }
            }
            // 大于最后一位数
            if (target > nums[len - 1]) {
                res = len;
            }
            return res;
        }
    }
    

      

     看了看别人的解法,我写的除了for循环之外的上下两种解法都可以归结为 return nums.length;

     然后我把res去掉直接就在for循环里面return,最后return了nums.length,然后就出错了,因为for循环里面没有考虑到target < nums[0]的情况,上面那种写法不出错是因为res初始化的时候为0了。

     其实for循环里面只要判断是不是小于就可以了

    public int searchInsert(int[] nums, int target) {
        for(int i = 0; i < nums.length;i++){
            if(nums[i] >= target){
                return i;
            }
        }
        return nums.length;
    }
    越努力越幸运~ 加油ヾ(◍°∇°◍)ノ゙
  • 相关阅读:
    (五)消费Dubbo服务
    (四)Dubbo Admin管理控制台
    (三)发布Dubbo服务
    (二)zookeeper安装
    (一)Dubbo简介
    解决tomcat 启动 一闪而过
    Redis的数据结构之哈希
    Redis的数据结构之字符串
    Jedis 连接池实例
    linux/centos定时任务cron
  • 原文地址:https://www.cnblogs.com/utomboy/p/13175514.html
Copyright © 2011-2022 走看看