明天不用帶飯啦
臨睡前無事關(guān)注了下大前端群然后自作自受陷入了javascript弱類型的坑。ref??
解題思路比較簡(jiǎn)單兩個(gè)指針一左一右夾擊,左邊遇到非*停下,右邊遇到*停下,交換(從偽代碼到代碼還有101次修改是我)。
var sort = function(array) {
for(let i = 0, j = array.length-1; i<j; ) {
while (i < j && array[i] === '*') {
i++;
}
while (i < j && array[j] !== '*') {
j--;
}
if (i < j) {
[array[i++], array[j--]] = [array[j], array[i]];
}
}
return array;
};
就是遇到了交換的坑。C和C++寫函數(shù)是可以選擇傳值還是傳址。一個(gè)交換函數(shù)
void swap(int *p1, int *p2)
{
int temp = 0;
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
到j(luò)avascript里就呵呵了。哪有傳遞引用?搜了一遍沒找到太晚了先記下,投機(jī)取巧用了ES6解構(gòu)賦值[a, b] = [b, a];所以最后連一個(gè)簡(jiǎn)單的交換函數(shù)都實(shí)現(xiàn)不了我要去睡覺了。。。
早上又提了好些代碼,看起來有些以為寫得短就是寫得好呢。不懂算法瞎搞
當(dāng)然我之前也會(huì)投機(jī)取巧縮短行數(shù)搞得別人看不懂代碼。不過寫業(yè)務(wù)代碼能短些倒是好事,反正我們也不像王小波寫的按代碼行數(shù)算錢。
那么至此就推薦一個(gè)算法過程的東西吧??AlgorithmVisualizer