Leetcode 每日打卡20200918

2021-10-09 14:16:07 字數 2052 閱讀 7514

給定乙個可包含重複數字的序列,返回所有不重複的全排列。

示例:輸入:[1

,1,2

]輸出:[[

1,1,

2],[

1,2,

1],[

2,1,

1]]

class

solution

private

void

dfs(

int[

] nums,

int cur)

set.

add(list);}

else}}

private

void

swap

(int

nums,

int i,

int j)

}

class

solution

private

void

dfs(

int[

] nums,

int cur)

ans.

add(line);}

else}}

}private

boolean

canswap

(int nums,

int begin,

int end)

}return

true;}

private

void

swap

(int nums,

int i,

int j)

}

有兩種特殊字元。第一種字元可以用一位元0來表示。第二種字元可以用兩位元(

10 或 11

)來表示。

現給乙個由若干位元組成的字串。問最後乙個字元是否必定為乙個一位元字元。給定的字串總是由0結束。

示例 1

:輸入:

bits =[1

,0,0

]輸出: true

解釋:

唯一的編碼方式是乙個兩位元字元和乙個一位元字元。所以最後乙個字元是一位元字元。

示例 2

:輸入:

bits =[1

,1,1

,0]輸出: false

解釋:

唯一的編碼方式是兩位元字元和兩位元字元。所以最後乙個字元不是一位元字元。

注意:1

<=

len(bits)

<=

1000.

bits[i] 總是0 或 1.

class

solution

else

}return index == bits.length -1;

}}

定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。

示例:輸入:1

->2-

>3-

>4-

>5-

>null

輸出:5

->4-

>3-

>2-

>1-

>null

限制:0<= 節點個數 <=

5000

/**

* definition for singly-linked list.

* public class listnode

* }*/class

solution

listnode first = head;

listnode second = first.next;

listnode third = second.next;

while

(third != null)

second.next = first;

head.next = null;

head = second;

return head;

}}

Leetcode 每日打卡20200917

輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使新鍊錶中的節點仍然是遞增排序的。示例1 輸入 1 2 4,1 3 4輸出 1 1 2 3 4 4限制 0 鍊錶長度 1000class solution if l2 null listnode res newlistnode 0 listnode cur r...

Leetcode每日一題打卡

原題 根據棧先進後出和佇列先進先出的不同特點予以以下實現,使用棧s1記錄佇列尾部元素,每次插入操作可以直接壓入棧s1中 在刪除元素時,為了刪除頭部元素,使用棧s2維護頭部元素。當s2不為空時,直接彈出棧頂元素即可。當s2為空時,就將s1中元素一次彈出而後壓入s2中,實現順序的反轉,s2棧頂元素就是佇...

LeetCode 每日 1 題 打卡刷題計畫

活動頁面 佇列 隊首出,隊尾進 先進先出 queue 的基本操作有 q.push x 隊尾 d.push back x 隊尾 d.push front x 隊首 q.pop d.pop back d.pop front struct listnode vector操作push back 在陣列的最後...