LeetCode35. 搜索插入位置

问题

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

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

示例 1:

输入: [1,3,5,6], 5
输出: 2

示例 2:

输入: [1,3,5,6], 2
输出: 1

示例 3:

输入: [1,3,5,6], 7
输出: 4

示例 4:

输入: [1,3,5,6], 0
输出: 0
解答:
 1 public static int SearchInsert(int[] nums, int target)
 2         {
 3             //定义返回值
 4             int result = -1;
 5             //做一次排序(题目是有序的,防止面试要求)
 6             nums = nums.OrderBy(x => x).ToArray();
 7             //判空
 8             if (nums != null && nums.Length > 0)
 9             {
10                 //循环数组
11                 for (var i = 0; i < nums.Length; i++)
12                 {
13                     //如果找到,直接返回
14                     if (target == nums[i])
15                     {
16                         return i;
17                     }
18                     else
19                     {
20                         //判断目标数是否小于数据元素,条件成立直接返回
21                         if (nums[i] > target)
22                         {
23                             return i;
24                         }
25                     }
26                 }
27                 //没找到,说明目标数字比数组中任意数字都大,则放到最末
28                 if (result < 0)
29                 {
30                     return nums.Length;
31                 }
32             }
33             return result;
34         }
原文地址:https://www.cnblogs.com/shacoli/p/10164451.html