演算法 陣列的partition調整

2022-08-22 07:48:09 字數 764 閱讀 5422

給定乙個有序陣列arr,調整arr使得這個陣列的左半部分沒有重複部分且公升序,而不用保證右部分是否有序。

例如:arr=[1,2,2,2,3,3,4,5,6,6,7,7,8,8,9,9],調整之後arr=[1,2,3,4,5,6,7,8,9…]。

時間複雜度o(n),額外空間複雜度o(1)

public

static

void leftunique(int arr)

int u = 0;
int i = 1;
while (i != arr.length)
}
}
給定乙個陣列arr,其中只可能含有0、1、2三個值,請實現arr的排序。

另外一種問法:有乙個陣列,其中只有紅球、籃球和黃球,請實現紅球全放在陣列的左邊,籃球放在中間,黃球放在右邊。

另外一種問法:有乙個陣列,再給定乙個值k,請實現比k小的數都放在陣列的左邊,等於k的值都放在陣列的中間,比k大的數都放在陣列的右邊。

public

static

void sort(int arr)

int left = -1;
int index = 0;
int right = arr.length;
while (index < right)  else

if (arr[index] == 2) else

}
}

演算法 陣列的應用

1,求最值 最大值,最小值 方法一 public class oneday int max 0 for int i 0 i arr.length i system.out.println max 2,選擇排序 乙個和所有比 int arr for int i 0 i arr.length i for...

簡單演算法 陣列

1.給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。param nums return var removeduplicates function nums prices return var maxprofit function prices pa...

演算法 陣列和視窗 陣列

給定乙個整型陣列arr和乙個大小為w的視窗,視窗從陣列最左邊滑動到最右邊,每次向右滑動乙個位置,求出每一次滑動時視窗內最大元素的和。輸入第一行為用例個數,每個測試用例輸入的第一行為陣列,每乙個元素使用空格隔開 第二行為視窗大小。輸出每個測試用例結果。14 3 5 4 3 3 6 7 3 陣列與視窗 ...