LeetCode035 Search Insert Position
来源:互联网 发布:建筑工地用工人员软件 编辑:程序博客网 时间:2024/05/19 13:23
详细见:leetcode.com/problems/search-insert-position
Java Solution: github
package leetcode;public class P035_SearchInsertPosition {public static void main(String[] args) {System.out.println(new Solution().searchInsert(new int[] {1,3,5,6}, 69));}/* * 0 ms * 16.95% * 又是试错型AC,今天怎么了 */static class Solution { public int searchInsert(int[] nums, int target) { if (nums == null || nums.length == 0) return 0; if (target > nums[nums.length - 1]) return nums.length; return getIndex(nums, 0, nums.length - 1, target); } private int getIndex(int[] nums, int sti, int eni, int target) { while (sti < eni) { int mid = (sti + eni) >> 1;// mid = (mid & 0x1) == 1 ? (mid >> 1) + 1 : mid >> 1; if (nums[mid] > target) eni = mid; else if (nums[mid] < target) sti = mid + 1; else return mid; } return sti; }}}
C Solution: github
/* url: leetcode.com/problems/search-insert-position/ 3ms 23.90%*/int searchInsert(int* nums, int numsSize, int target) { //first equal or larger int i = 0, j = numsSize - 1, m = 0; if (numsSize == 0) return 0; if (nums[i] >= target) return i; if (nums[j] < target) return j + 1; while (i < j) { m = i + (j - i) / 2; if (nums[m] >= target) { j = m; } else { i = m + 1; } } return i;}int main() { int nums[] = {1,3,5,6}; int v[] = {5, 2, 7, 0}; int i = 0; int numsSize = 4; for (i = 0; i < numsSize; i ++) { printf("target is %d answer is %d \r\n", v[i], searchInsert(nums, numsSize, v[i])); }}
Python Solution: github
#coding=utf-8''' url: leetcode.com/problems/search-insert-position/ @author: zxwtry @email: zxwtry@qq.com @date: 2017年4月4日 @details: Solution: 58ms 21.67%'''class Solution(object): def searchInsert(self, n, t): """ :type n: List[int] :type t: int :rtype: int """ nn = 0 if n == None else len(n) if nn == 0: return 0 return self.binarySearchFirstEqualOrLarger(n, 0, nn, t) #[i, j) def binarySearchFirstEqualOrLarger(self, n, i, j, t): j -= 1 if n[j] < t: return j + 1 while i < j: m = (i + j) // 2 if n[m] >= t: j = m else: i = m + 1 return i
0 0
- LeetCode035 Search Insert Position
- LeetCode: Search Insert Position
- Search Insert Position
- LeetCode Search Insert Position
- [Leetcode] Search Insert Position
- LeetCode : Search Insert Position
- Search Insert Position
- [LeetCode] Search Insert Position
- [Leetcode] Search Insert Position
- LeetCode34:Search Insert Position
- Search Insert Position
- [35]Search Insert Position
- Search Insert Position
- Search Insert Position
- [LeetCode]Search Insert Position
- Search Insert Position
- [LeetCode] Search Insert Position
- Search Insert Position
- 流行的响应式框架,原型设计简介
- LeetCode034 Search for a Range
- 1.15内存地址空间
- 判断单链表是否存在环 && 判断两链表是否相交
- unittest 源代码分析(二)--main.py代码分析
- LeetCode035 Search Insert Position
- 详解Android中AsyncTask的使用
- 《面向对象》第七章 总结
- jfinal main方法里操作数据库+redis
- 剑指offer
- C++笔记(一)
- LeetCode036 Valid Sudoku
- 2017年产品经理之项目管理流程-全栈工程师熊盼
- x86-64和x86