704.二分查找
題目鏈接704. 二分查找 - 力扣(LeetCode)
第一思路:
暴力法岂座,循環(huán)查找相同元素,拋出下標(biāo)值
第二思路:
仔細(xì)看題,題目需要使用二分查找抛姑,是有序的數(shù)組斗遏,那么就需要查找數(shù)組的中間值幻工,用來(lái)不斷的將判斷范圍縮小聚霜,減少不必要的運(yùn)算沟饥;將數(shù)組mid位置的值與target相比較,若mid大于target废赞,只需要比較mid到right的值徽龟,逐步縮小范圍;若相反則只需要比較left到mid的值唉地;
注意點(diǎn):
1据悔、注意mid的設(shè)置,防止越界耘沼;
2屠尊、注意left與right比較,是否有=號(hào)耕拷,確定開區(qū)間與閉區(qū)間的區(qū)別讼昆;
屏幕截圖 2022-10-13 221742.png
27.移除元素
題目鏈接:27. 移除元素 - 力扣(LeetCode)
第一思路:
將數(shù)組中元素移除,順便將length數(shù)組減一骚烧,這樣只獲取到數(shù)組剩余的值即可浸赫;
注意點(diǎn):
1、需要考慮重復(fù)元素替換的問題
2赃绊、需要考慮數(shù)組長(zhǎng)度不斷變化的問題
image.png
第二思路:
雙指針法:通過兩個(gè)指針既峡,在一個(gè)for循環(huán)中完成兩個(gè)for循環(huán)的工作;快慢指針同時(shí)前進(jìn)碧查,當(dāng)快指針查找到目標(biāo)元素時(shí)运敢,慢指針暫停,快指針繼續(xù)指向下一位忠售,然后刪除目標(biāo)元素(即使用后位元素替換目標(biāo)元素)传惠,然后慢指針繼續(xù)前進(jìn),直到快指針查找完全部元素稻扬,返回慢指針的個(gè)數(shù)即可卦方;
注意點(diǎn):
1、i其實(shí)不必要了泰佳,直接可以用fast代替i盼砍,這樣可以減少一個(gè)變量;
2逝她、slow++可以直接寫到nums[slow++]中浇坐,更簡(jiǎn)練
image.png