class program
", posinum, neganum);
int index = 0;
int opercount = 1;
int maxnum = 0;
for (int i = 0; i < numofnum; i++)
if (math.abs(inputarray[i]) > maxnum)
maxnum = math.abs(inputarray[i]);
maxnum++;
int posiposi = 0;
int negaposi = 0;
for (int i = 0; i < numofnum; i++)
if (inputarray[i] > 0)
else
index = 0;
while (index < posinum + neganum)
index++;
}for (int i = 0; i < numofnum; i++)
if (i < neganum)
", inputarray[i]-(i+2)*maxnum);
}else
console.writeline("", inputarray[i] - (i + 1) * maxnum);
console.readline();
}static int getnum(string s)
return sum*sign;
}}
乙個未排序整數陣列,有正負數,重新排列使負數排在正數前面,並且要求不改變原來的正負數之間相對順序。
比如: input: 1,7,-5,9,-12,15 ,ans: -5,-12,1,7,9,15 。且要求時間複雜度o(n),空間o(1) 。
不改變正負數相對順序重新排列陣列
看到網上乙個解法,空間複雜度o 1 時間複雜度o nlogn 做乙個小演算法題,提提神 乙個未排序整數陣列,有正負數,重新排列使負數排在正數前面,並且要求不改變原來的正負數之間相對順序。思考的過程就略去了,直接說結果吧。我想到的演算法,空間複雜度為o 1 時間複雜度為o n logn 首先,定義這樣...
大數相加(分正負數)
給出2個大整數a,b,計算a b的結果。input 第1行 大數a 第2行 大數b a,b的長度 10000 需注意 a b有可能為負數 output 輸出a b sample input68932147586 468711654886sample output537643802472 includ...
不改變相對順序,負數左邊正數右邊
不改變正負數之間的相對順序重新排列陣列,使得負數字於正數之前 1 舉例 如 1,7,5,2,9,3變成 5,9,1,7,2,3 2 方法一 從頭到尾掃瞄陣列,每次碰到乙個正數時,就把位於這個數字之後的所有數字到往前挪動一位。挪動之後在陣列的末尾有乙個空位,把這個正數填進去。整體的時間複雜度為o n ...