給定乙個可包含重複數字的序列,返回所有不重複的全排列。
示例:輸入:[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 在陣列的最後...