------------------------------------2019/1/23---------------------------------------------------
题目链接:
https://leetcode-cn.com/problems/search-insert-position/
优秀的答案,如此简洁:
public class Solution {
public int SearchInsert(int[] nums, int target) {
for (int i = 0; i < nums.Length; i++)
{
if (nums[i] >= target)
{
return i;
}
}
return nums.Length;
}
}
之前写的代码未在LeetCode上执行:惊奇的发现现在小看了曾经的自己:
我将以前的代码整理了一下在LeetCode上执行的答案:
这是我第一次做这个题的思路总结:
1、如果小于数组的第一个值,那么正好直接返回 res = 0;
2、==target 返回 res= i
3、i执行到最后一个,并且最后一个还小于target,那么 res=i+1.
在LeetCode执行的代码:执行用时: 160 ms, 在Search Insert Position的C#提交中击败了52.79% 的用户
public class Solution {
public int SearchInsert(int[] nums, int target) {
int res=0;
for (int i = 0; i < nums.Length; i++)
{
if (nums[i]==target)
{
res=i;
break;
}
else if (nums[i] < target && nums[i] == nums[nums.Length - 1]) //这个条件不能放在最后,防止溢出报错
{
res = i + 1;
}
else if (nums[i] < target && target < nums[i + 1])
{
res = i + 1;
}
}
return res;
}
}
------------------------------------2019/1/23---------------------------------------------------
一次过的题
private static int GetSeach(int[] nums, int number)
{
int tts = 0;
for (int i = 0; i < nums.Length; i++)
{
if (nums[i]==number)
{
tts = i;
}
else if (nums[i] < number && nums[i] == nums[nums.Length - 1]) //这个条件不能放在最后,防止溢出报错
{
tts = i + 1;
}
else if (nums[i]<number&&number<nums[i+1])
{
tts = i + 1;
}
}
return tts;
}
static void Main(string[] args)
{
int[] nums = new int[] { 1, 3, 5, 6 };
int number = 2;
int resnumber = GetSeach(nums,number);
Console.Write(resnumber);
Console.ReadKey();
}