LeetCode簡單題10 搜尋插入位置

2021-10-04 16:45:44 字數 1299 閱讀 4846

題目描述:

給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。可假設陣列中無重複元素。

樣例:

輸入:[1,3,5] 3

輸出:1

輸入:[1,4] 3

輸出:1

輸入:[1] 1

輸出:0

題解:

看起來,因為是排好序的,遍歷一遍就可以找出被插入的位置。。可是寫出來發現,遍歷只能解決一般問題,臨界情況都無法處理,所以在迴圈之前加了好多if語句處理邊界和特殊情況。

**:

public

static

intsearchinsert

(int

nums,

int target)

else

if(target > nums[nums.length-1]

)//處理陣列唱長度為1的情況

if(nums.length ==1)

//核心迴圈,存在則返回下標,不存在則返回插入點下標,

//由於迴圈條件的限制,不能處理陣列長度為0和1的情況,而且陣列最後乙個元素也迴圈不到

這種屬於暴力解法,傻瓜操作,一不小心就容易遺漏特殊情況,所以,還得學習下巧妙地解決。我會回來更新的。

4月2號更新:

看了力扣此題下的題解,發現二分法就是那個巧妙的解法,一次迴圈就能涵蓋所有的特殊情況,實在是秒啊。

簡單搜尋題!

設有乙個4 4的棋盤,用四個棋子布到格仔中,要求滿足以下條件 1 任意兩個棋子不在同一行和同一列上 試問有多少種棋局,程式設計把它們全部列印出來。如下 include include include include include using namespace std int n 4,m 4,us...

LeetCode題庫 簡單題

leetcode 題目鏈結 反轉一半 負數不可能是回文 個位數一定是回文 0是回文 問題 如何反轉一半的數字 演算法例項 bool ispalindrome int x if x 10 x為個位數 一定是回文 return1 int revernum 0 while x revernum retur...

LeetCode 簡單題 棧

你現在是棒球比賽記錄員。給定乙個字串列表,每個字串可以是以下四種型別之一 1.整數 一輪的得分 直接表示您在本輪中獲得的積分數。2.一輪的得分 表示本輪獲得的得分是前兩輪有效 回合得分的總和。3.d 一輪的得分 表示本輪獲得的得分是前一輪有效 回合得分的兩倍。4.c 乙個操作,這不是乙個回合的分數 ...