Commit f63a759
committed
35. Search Insert Position
```Solution.c int searchInsert(int* nums, int numsSize, int target) { int left = 0, right = numsSize - 1; while (left <= right) { int mid = left + (right - left) / 2; if (nums[mid] == target) return mid; else if (nums[mid] < target) left = mid + 1; else right = mid - 1; } return left; } ``` ```Solution.cpp class Solution { public: int searchInsert(vector<int>& nums, int target) { int left = 0, right = nums.size() - 1; while (left <= right) { int mid = left + (right - left) / 2; if (nums[mid] == target) return mid; else if (nums[mid] < target) left = mid + 1; else right = mid - 1; } return left; } }; ``` ```Solution.cs public class Solution { public int SearchInsert(int[] nums, int target) { int left = 0, right = nums.Length - 1; while (left <= right) { int mid = left + (right - left) / 2; if (nums[mid] == target) return mid; else if (nums[mid] < target) left = mid + 1; else right = mid - 1; } return left; } } ``` ```Solution.dart class Solution { int searchInsert(List<int> nums, int target) { int left = 0, right = nums.length - 1; while (left <= right) { int mid = (left + right) ~/ 2; if (nums[mid] == target) return mid; else if (nums[mid] < target) left = mid + 1; else right = mid - 1; } return left; } } ``` ```Solution.erl -spec search_insert([integer()], integer()) -> integer(). search_insert(Nums, Target) -> search(Nums, Target, 0, length(Nums) - 1). search(Nums, Target, Left, Right) when Left =< Right -> Mid = (Left + Right) div 2, Val = lists:nth(Mid + 1, Nums), case Val of Target -> Mid; _ when Val < Target -> search(Nums, Target, Mid + 1, Right); _ -> search(Nums, Target, Left, Mid - 1) end; search(_, _, Left, _) -> Left. ``` ```Solution.ex defmodule Solution do @SPEC search_insert(nums :: [integer], target :: integer) :: integer def search_insert(nums, target) do search(nums, target, 0, length(nums) - 1) end defp search(nums, target, left, right) when left <= right do mid = div(left + right, 2) val = Enum.at(nums, mid) cond do val == target -> mid val < target -> search(nums, target, mid + 1, right) true -> search(nums, target, left, mid - 1) end end defp search(_nums, _target, left, _right), do: left end ``` ```Solution.go func searchInsert(nums []int, target int) int { left, right := 0, len(nums)-1 for left <= right { mid := (left + right) / 2 if nums[mid] == target { return mid } else if nums[mid] < target { left = mid + 1 } else { right = mid - 1 } } return left } ``` ```Solution.java class Solution { public int searchInsert(int[] nums, int target) { int left = 0, right = nums.length - 1; while (left <= right) { int mid = left + (right - left) / 2; if (nums[mid] == target) return mid; else if (nums[mid] < target) left = mid + 1; else right = mid - 1; } return left; } } ``` ```Solution.js /** * @param {number[]} nums * @param {number} target * @return {number} */ var searchInsert = function(nums, target) { let left = 0, right = nums.length - 1; while (left <= right) { let mid = Math.floor((left + right) / 2); if (nums[mid] === target) return mid; else if (nums[mid] < target) left = mid + 1; else right = mid - 1; } return left; }; ``` ```Solution.kt class Solution { fun searchInsert(nums: IntArray, target: Int): Int { var left = 0 var right = nums.size - 1 while (left <= right) { val mid = left + (right - left) / 2 if (nums[mid] == target) return mid else if (nums[mid] < target) left = mid + 1 else right = mid - 1 } return left } } ``` ```Solution.php class Solution { /** * @param Integer[] $nums * @param Integer $target * @return Integer */ function searchInsert($nums, $target) { $left = 0; $right = count($nums) - 1; while ($left <= $right) { $mid = intdiv($left + $right, 2); if ($nums[$mid] == $target) return $mid; elseif ($nums[$mid] < $target) $left = $mid + 1; else $right = $mid - 1; } return $left; } } ``` ```Solution.py class Solution: def searchInsert(self, nums: List[int], target: int) -> int: left, right = 0, len(nums) - 1 while left <= right: mid = (left + right) // 2 if nums[mid] == target: return mid elif nums[mid] < target: left = mid + 1 else: right = mid - 1 return left ``` ```Solution.rb # @param {Integer[]} nums # @param {Integer} target # @return {Integer} def search_insert(nums, target) left, right = 0, nums.length - 1 while left <= right mid = (left + right) / 2 if nums[mid] == target return mid elsif nums[mid] < target left = mid + 1 else right = mid - 1 end end left end ``` ```Solution.rkt (define (search-insert nums target) (let loop ((left 0) (right (- (length nums) 1))) (if (> left right) left (let* ((mid (quotient (+ left right) 2)) (val (list-ref nums mid))) (cond [(= val target) mid] [(< val target) (loop (+ mid 1) right)] [else (loop left (- mid 1))]))))) ``` ```Solution.rs impl Solution { pub fn search_insert(nums: Vec<i32>, target: i32) -> i32 { let mut left = 0; let mut right = nums.len() as i32 - 1; while left <= right { let mid = left + (right - left) / 2; if nums[mid as usize] == target { return mid; } else if nums[mid as usize] < target { left = mid + 1; } else { right = mid - 1; } } left } } ``` ```Solution.scala object Solution { def searchInsert(nums: Array[Int], target: Int): Int = { var left = 0 var right = nums.length - 1 while (left <= right) { val mid = left + (right - left) / 2 if (nums(mid) == target) return mid else if (nums(mid) < target) left = mid + 1 else right = mid - 1 } left } } ``` ```Solution.swift class Solution { func searchInsert(_ nums: [Int], _ target: Int) -> Int { var left = 0, right = nums.count - 1 while left <= right { let mid = (left + right) / 2 if nums[mid] == target { return mid } else if nums[mid] < target { left = mid + 1 } else { right = mid - 1 } } return left } } ``` ```Solution.ts function searchInsert(nums: number[], target: number): number { let left = 0, right = nums.length - 1; while (left <= right) { let mid = Math.floor((left + right) / 2); if (nums[mid] === target) return mid; else if (nums[mid] < target) left = mid + 1; else right = mid - 1; } return left; } ```1 parent ffa7cb9 commit f63a759
File tree
19 files changed
+270
-0
lines changed- sol/solution/0001-0100/0035
19 files changed
+270
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
0 commit comments