Leetcode题库-搜索插入位置(java语言版)
2019-01-27 20:56
148 查看
题目描述:
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 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
这道题,题目要求数组中没有重复元素,减轻了本题的难度。这道题思路很清楚,就是for循环遍历,与输入的目标数比较,一样就输出对应的下标,数组中的元素大于目标数,则将大于时的那个下标输出(大于目标数,则目标数就是填充到大于的这个数字的位置)。例如;4,6,7,目标数:5,则,6>5时,则将6对应的下标输出,这就是目标数插入时的位置。但当数组中的所有元素都小于目标数时,证明此时数组前面插入不了,只能插入到数组的最末尾,这个当时想了一会。结果很简单,就是输出数组的长度就行。因为数组是从0到数组长度-1.当末尾插入元素时,则(数组长度-1+1)==数组长度,输出数组长度即可。
代码如下:
[code]public static void main(String[] args){ int [] a = {3,6,7,9}; Scanner sc = new Scanner ( System.in ); int val = sc.nextInt (); for (int i=0; i<a.length; i++){ if (a[i]==val){ System.out.println(i); break; } else if (a[i]>val){ System.out.println(i); break; } } //当数组中的所有元素都小于目标数时,证明此时数组前面插入不了,只能插入到数组的最末尾, 这个当时想了一会。结果很简单,就是输出数组的长度就行。 因为数组是从0到数组长度-1.当末尾插入元素时,则(数组长度-1+1)==数组长度,输出数组长度即可。 System.out.println(a.length); }
执行结果:
注意:这个和leetcode提交不同,需要更改一下才能提交。
执行用时:
总结:这道题思路很明确就是for循环比较,然后进行判断输出,注意目标数大于数组中的数和目标数小于数组中的数这两个条件的输出,数组数大于目标数时输出大于的这个数对应的i,数组数小于目标数时,证明只能插到末尾,那新数组最后一个元素的下标就是原数组长度。
这道题让我明白if判断时条件怎样选择。深有启发。
2019-1-27记录
相关文章推荐
- Java&LeetCode 初入门——035. 搜索插入位置
- 【LeetCode-面试算法经典-Java实现】【035-Search Insert Position(搜索插入位置)】
- Leetcode题库 - 存在重复元素(java语言版)
- LeetCode 35. 搜索插入位置
- Leetcode题库-颜色分类(java语言版)
- leetcode之数组类之数组的旋转与分治类-----OJ 189/33/81/153/154 数组旋转 旋转数组搜索 88 有序数组合并 4 两个有序数组寻找第K个元素/中位数 35 寻找插入位置
- Leetcode题库-数组中的第K个最大元素(java语言版)
- Leetcode题库 - 有效的字母异位词(java语言版)
- [LeetCode] Search Insert Position 搜索插入位置
- (LeetCode每日一刷11)搜索插入位置
- leetcode 35. Search Insert Position搜索插入位置(二分查找)
- leetCode 35.Search Insert Position (搜索插入位置) 解题思路和方法
- Leetcode题库-存在重复元素2(java语言版)
- Leetcode35. 搜索插入位置(python3)
- Leetcode题库-四数相加2(java语言版)
- Leetcode题库-存在重复元素3(java语言版)
- leetcode的python实现 刷题笔记35:搜索插入位置的暴力解法和优化解法
- [LeetCode] 35. Search Insert Position 搜索插入位置
- Leetcode(35) 搜索插入位置
- 【LeetCode】Search Insert Position搜索插入位置[数组、二分法] - Medium