演算法 劍指offer 快排

2021-10-08 09:48:00 字數 573 閱讀 4586

快排(緊記快排模板,partition & fastsort)

int

fastsort

(int arr,

int l,

int r)

return arr;

}int

partition

(int

arr,

int l,

int r)

arr[l]

= tmp;

return l;

}

輸入乙個非負整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個

利用快排思想,比較拼接起來的字串的大小,進行排序

// 先把int陣列轉化成字串陣列,再進行快排(利用compareto進行比較)其他與快排相同

strings[i]

= string.

valueof

(nums[i]

);

演算法 劍指offer

思路 若百位上數字為0,百位上可能出現1的次數由更高位決定 若百位上數字為1,百位上可能出現1的次數不僅受更高位影響還受低位影響 若百位上數字大於1,則百位上出現1的情況僅由更高位決定。舉例 個位1出現的次數 round 1 1 每次迴圈1出現一次,0 9迴圈了53次,第54次迴圈為0 4 十位1出...

劍指offer演算法

動態規劃 題目描述 hz偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了 在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如 連續子向量的最大和為8...

劍指 Offer 40 最小的k個數 快排 堆

劍指 offer 40.最小的k個數 輸入整數陣列 arr 找出其中最小的 k 個數。例如,輸入4 5 1 6 2 7 3 8這8個數字,則最小的4個數字是1 2 3 4。示例 1 輸入 arr 3,2,1 k 2 輸出 1,2 或者 2,1 示例 2 輸入 arr 0,1,2,1 k 1 輸出 0...