原创 (多線程)兩個線程分別打印 1 a 2 b 3 c 4 d ……

需求:一個線程A打印 1 後,另一個線程B打印 a ;接着線程A打印 2 後,線程B打印 b ......................... 題解:我會用一個標記變量 index,當index爲奇數時,打印數字,線程A工作;    

原创 (多線程)1114. 按序打印

我們提供了一個類: public class Foo {   public void one() { print("one"); }   public void two() { print("two"); }   public void

原创 (多線程)1116. 打印零與奇偶數

假設有這麼一個類: class ZeroEvenOdd {   public ZeroEvenOdd(int n) { ... }      // 構造函數   public void zero(printNumber) { ... }

原创 (多線程)1115. 交替打印FooBar

我們提供一個類: class FooBar {   public void foo() {     for (int i = 0; i < n; i++) {       print("foo");     }   }   public

原创 (多線程)1117. H2O 生成

現在有兩種線程,氫 oxygen 和氧 hydrogen,你的目標是組織這兩種線程來產生水分子。 存在一個屏障(barrier)使得每個線程必須等候直到一個完整水分子能夠被產生出來。 氫和氧線程會被分別給予 releaseHydrogen

原创 (思維)470. 用 Rand7() 實現 Rand10()

已有方法 rand7 可生成 1 到 7 範圍內的均勻隨機整數,試寫一個方法 rand10 生成 1 到 10 範圍內的均勻隨機整數。 不要使用系統的 Math.random() 方法。 示例 1: 輸入: 1 輸出: [7] 示例 2:

原创 (鏈表)148. 排序鏈表

在 O(n log n) 時間複雜度和常數級空間複雜度下,對鏈表進行排序。 示例 1: 輸入: 4->2->1->3 輸出: 1->2->3->4 示例 2: 輸入: -1->5->3->4->0 輸出: -1->0->3->4->5 題

原创 (逆康拓展開)60. 第k個排列

給出集合 [1,2,3,…,n],其所有元素共有 n! 種排列。 按大小順序列出所有排列情況,並一一標記,當 n = 3 時, 所有排列如下: "123" "132" "213" "231" "312" "321" 給定 n 和 k,返回

原创 (SQL)175. 組合兩個表

SQL架構: Create table Person (PersonId int, FirstName varchar(255), LastName varchar(255)) Create table Address (AddressI

原创 (SQL)184. 部門工資最高的員工

SQL架構: Create table If Not Exists Employee (Id int, Name varchar(255), Salary int, DepartmentId int) Create table If No

原创 (SQL)176. 第二高的薪水

  SQL架構: Create table If Not Exists Employee (Id int, Salary int) Truncate table Employee insert into Employee (Id, Sal

原创 (堆應用)347. 前 K 個高頻元素

給定一個非空的整數數組,返回其中出現頻率前 k 高的元素。 示例 1: 輸入: nums = [1,1,1,2,2,3], k = 2 輸出: [1,2] 示例 2: 輸入: nums = [1], k = 1 輸出: [1] 說明: 你

原创 (SQL)177. 第N高的薪水

編寫一個 SQL 查詢,獲取 Employee 表中第 n 高的薪水(Salary)。 +----+--------+ | Id | Salary | +----+--------+ | 1  | 100    | | 2  | 200

原创 (二叉樹)199. 二叉樹的右視圖

給定一棵二叉樹,想象自己站在它的右側,按照從頂部到底部的順序,返回從右側所能看到的節點值。 示例: 輸入: [1,2,3,null,5,null,4] 輸出: [1, 3, 4] 解釋:    1            <---  /  

原创 (思維)768. 最多能完成排序的塊 II

這個問題和“最多能完成排序的塊”相似,但給定數組中的元素可以重複,輸入數組最大長度爲2000,其中的元素最大爲10**8。 arr是一個可能包含重複元素的整數數組,我們將這個數組分割成幾個“塊”,並將這些塊分別進行排序。之後再連接起來,使