二分總結 oj題簡單思路

2021-08-14 14:56:17 字數 1103 閱讀 3250



二分總結

一.

二分從做過的題來說應該可以分為三類:查詢類

oj上所有二分題)和網上說的排序類(可以用

sort

水過以及合併類(目前沒有遇到過)。

主要思路:

1.先確定要查詢的物件。

2.再確定

while

迴圈的左右以及停止條件。

下面以幾道

oj的題來總結一下二分。

二.例題1.「

01:查詢最接近的元素」

此題比較水,但還是做的時候想用暴力結果超時給坑了幾次。思路很簡單,就使

left=1

,right=n

來做,查詢

mid與給定數的關係。典型二分題。2.「

03:矩形分割」

初次做這種題比較難想思路,後來老師給看了某李姓大佬的解題思路茅塞頓開。

思路是:將每列的面積用乙個一維數組裝起來後再查詢符合題意的值。考慮到這道題還是較難,寫一下核心函式**。

long long a(longmid)

}

return s1-s2;

}

s1

與s2分別是左右的面積,由於題意左大於右,於是就大於的時候右邊縮小,小於的時候左邊縮小即可。3.「

04:網線主管」

很經典的一道題,後面所有題的思路都和這道題差不多

考慮到二位小數,就可以想到先乘

100後化為整數計算。下面核心**:

while

(min1<=max1)

min1為左,max1為右。以中間值mid為界來計算可以分成的段落。再以分成的段落與題目要求作比較,再確定是該左加還是右減。

二分查詢簡單題

leetcode 35.search insert position 最普通的binary search,若target存在,則返回所在下標 若target不存在,則返回target待插入的位置,本質上就是實現lower bound函式 無論mid left right left 2,還是mid l...

二分答案 簡單題

一 何時可以使用 二分答案 不是任何題目都適合使用 二分答案 的,我sam觀察到一般有以下的一些特徵 a.候選答案必須是離散的 且已知答案的範圍是 最小值min,最大值max 連續區間上不能進行二分操作 例如,在題目 kth largest 第k大的數 中 答案是閉區間 a 1 b 1 a n b ...

二分 簡單題多解法

題目 輸入n n 100,000 個整數,找出其中的兩個數,它們之和等於 整數m 假定肯定有解 題中所有整數都能用 int 解法1 用兩重迴圈,列舉所有的取數方法,複雜度是o n 2 的。for int i 0 i n 1 i for int j i 1 j n j if a i a j m bre...