題目描述:
沒有第二解法了,就這麼乙個辦法class cqueue
stack1.push(value);
}public int deletehead()
}if(stack2.isempty()) return -1;
else return stack2.pop();
}}
題目描述:
解法1:輔助棧,乙個棧完成push,pop的基本邏輯,乙個棧專門用來儲存非嚴格次序的最小值
解法2:乙個棧,當最小值入棧的時候進棧兩次class minstack
public void push(int x)
}public void pop()
public int top()
public int min()
}
題目描述:class minstack2
public void push(int x)
topp++;
stack[topp] = x; }
public void pop()
topp--; }
public int top()
public int min() else
}}
題目描述:class solution
}return stack.isempty();
}}
解法1:呼叫arrays.sort api
解法2:快排思想public int getleastnumbers(int arr, int k)
for(int i = 0; i < k ; i++)
return res;
}
題目描述:/**
* 解法2:快速排序思想
*/public int getleastnumber2(int arr, int k)
return vec;
}private void randomizedselected(int arr, int l, int r, int k)
int pos = randomizedpartition(arr, l, r);
int num = pos - l + 1;
if(k == num) else if(k < num) else
}//基於隨機的劃分
private int randomizedpartition(int nums, int l, int r)
private int partition(int nums, int l, int r)
}swap(nums, i + 1, r);
return i + 1;
}public void swap(int nums, int i, int j)
這是見過的第乙個hard題,我不認識其中的優先佇列,也不知道題解的解法到底是什麼意思,我的解法超出了時間限制。現在這個階段還是以easy和middle難度的題為主吧。
題目描述:class medianfinder
public void addnum(int num)
public double findmedian() else
return midnum;
}}
掌握雙端佇列的用法
class solution
deque.offerlast(nums[i]);
}res[arr_index++] = deque.getfirst();
for(int i = k; i < nums.length; i++)
deque.offerlast(nums[i]);
res[arr_index++] = deque.getfirst();
}return res;
}}
LeetCode 劍指offer刷題10 1
leetcode 劍指offer刷題 劍指 offer 10 i.斐波那契數列 寫乙個函式,輸入 n 求斐波那契 fibonacci 數列的第 n 項。斐波那契數列的定義如下 f 0 0,f 1 1 f n f n 1 f n 2 其中 n 1.斐波那契數列由 0 和 1 開始,之後的斐波那契數就是...
leetcode刷題 劍指offer 32題
從上到下列印出二叉樹的每個節點,同一層的節點按照從左到右的順序列印。例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回 3,9,20,15,7 新手上路,才學疏淺,望斧正 利用乙個佇列實現 class solution queue.add root while ...
leetcode刷題 劍指offer 24題
輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有奇數在陣列的前半部分,所有偶數在陣列的後半部分。示例 輸入 nums 1,2,3,4 輸出 1,3,2,4 注 3,1,2,4 也是正確的答案之一。新手上路,才學疏淺,望斧正 class solution int m 0,n len 1...