mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 11:34:46 +08:00
Merge branch 'youngyangyang04:master' into master
This commit is contained in:
@ -87,11 +87,11 @@ public:
|
|||||||
|
|
||||||
// 下面开始的四个for就是模拟转了一圈
|
// 下面开始的四个for就是模拟转了一圈
|
||||||
// 模拟填充上行从左到右(左闭右开)
|
// 模拟填充上行从左到右(左闭右开)
|
||||||
for (j = starty; j < n - offset; j++) {
|
for (j; j < n - offset; j++) {
|
||||||
res[startx][j] = count++;
|
res[i][j] = count++;
|
||||||
}
|
}
|
||||||
// 模拟填充右列从上到下(左闭右开)
|
// 模拟填充右列从上到下(左闭右开)
|
||||||
for (i = startx; i < n - offset; i++) {
|
for (i; i < n - offset; i++) {
|
||||||
res[i][j] = count++;
|
res[i][j] = count++;
|
||||||
}
|
}
|
||||||
// 模拟填充下行从右到左(左闭右开)
|
// 模拟填充下行从右到左(左闭右开)
|
||||||
|
@ -198,7 +198,7 @@ class Solution {
|
|||||||
|
|
||||||
### Python
|
### Python
|
||||||
|
|
||||||
```
|
```python
|
||||||
class Solution:
|
class Solution:
|
||||||
def ladderLength(self, beginWord: str, endWord: str, wordList: List[str]) -> int:
|
def ladderLength(self, beginWord: str, endWord: str, wordList: List[str]) -> int:
|
||||||
wordSet = set(wordList)
|
wordSet = set(wordList)
|
||||||
|
@ -231,6 +231,8 @@ class Solution:
|
|||||||
|
|
||||||
### Go:
|
### Go:
|
||||||
|
|
||||||
|
(版本一)使用字典和集合
|
||||||
|
|
||||||
```go
|
```go
|
||||||
func intersection(nums1 []int, nums2 []int) []int {
|
func intersection(nums1 []int, nums2 []int) []int {
|
||||||
set:=make(map[int]struct{},0) // 用map模拟set
|
set:=make(map[int]struct{},0) // 用map模拟set
|
||||||
@ -251,6 +253,28 @@ func intersection(nums1 []int, nums2 []int) []int {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
(版本二)使用数组
|
||||||
|
|
||||||
|
```go
|
||||||
|
func intersection(nums1 []int, nums2 []int) []int {
|
||||||
|
count1 := make([]int, 1001, 1001)
|
||||||
|
count2 := make([]int, 1001, 1001)
|
||||||
|
res := make([]int, 0)
|
||||||
|
for _, v := range nums1 {
|
||||||
|
count1[v] = 1
|
||||||
|
}
|
||||||
|
for _, v := range nums2 {
|
||||||
|
count2[v] = 1
|
||||||
|
}
|
||||||
|
for i := 0; i <= 1000; i++ {
|
||||||
|
if count1[i] + count2[i] == 2 {
|
||||||
|
res = append(res, i)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### JavaScript:
|
### JavaScript:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
|
@ -256,6 +256,7 @@ class Solution {
|
|||||||
### Python3
|
### Python3
|
||||||
|
|
||||||
```python
|
```python
|
||||||
|
# 版本一
|
||||||
class Solution:
|
class Solution:
|
||||||
def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]:
|
def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]:
|
||||||
result = [-1]*len(nums1)
|
result = [-1]*len(nums1)
|
||||||
@ -273,6 +274,26 @@ class Solution:
|
|||||||
stack.pop()
|
stack.pop()
|
||||||
stack.append(i)
|
stack.append(i)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
# 版本二
|
||||||
|
class Solution:
|
||||||
|
def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]:
|
||||||
|
stack = []
|
||||||
|
# 创建答案数组
|
||||||
|
ans = [-1] * len(nums1)
|
||||||
|
for i in range(len(nums2)):
|
||||||
|
while len(stack) > 0 and nums2[i] > nums2[stack[-1]]:
|
||||||
|
# 判断 num1 是否有 nums2[stack[-1]]。如果没有这个判断会出现指针异常
|
||||||
|
if nums2[stack[-1]] in nums1:
|
||||||
|
# 锁定 num1 检索的 index
|
||||||
|
index = nums1.index(nums2[stack[-1]])
|
||||||
|
# 更新答案数组
|
||||||
|
ans[index] = nums2[i]
|
||||||
|
# 弹出小元素
|
||||||
|
# 这个代码一定要放在 if 外面。否则单调栈的逻辑就不成立了
|
||||||
|
stack.pop()
|
||||||
|
stack.append(i)
|
||||||
|
return ans
|
||||||
```
|
```
|
||||||
|
|
||||||
### Go
|
### Go
|
||||||
|
@ -170,7 +170,6 @@ class Solution {
|
|||||||
### Python:
|
### Python:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
# 方法 1:
|
|
||||||
class Solution:
|
class Solution:
|
||||||
def nextGreaterElements(self, nums: List[int]) -> List[int]:
|
def nextGreaterElements(self, nums: List[int]) -> List[int]:
|
||||||
dp = [-1] * len(nums)
|
dp = [-1] * len(nums)
|
||||||
@ -181,26 +180,6 @@ class Solution:
|
|||||||
stack.pop()
|
stack.pop()
|
||||||
stack.append(i%len(nums))
|
stack.append(i%len(nums))
|
||||||
return dp
|
return dp
|
||||||
|
|
||||||
# 方法 2:
|
|
||||||
class Solution:
|
|
||||||
def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]:
|
|
||||||
stack = []
|
|
||||||
# 创建答案数组
|
|
||||||
ans = [-1] * len(nums1)
|
|
||||||
for i in range(len(nums2)):
|
|
||||||
while len(stack) > 0 and nums2[i] > nums2[stack[-1]]:
|
|
||||||
# 判断 num1 是否有 nums2[stack[-1]]。如果没有这个判断会出现指针异常
|
|
||||||
if nums2[stack[-1]] in nums1:
|
|
||||||
# 锁定 num1 检索的 index
|
|
||||||
index = nums1.index(nums2[stack[-1]])
|
|
||||||
# 更新答案数组
|
|
||||||
ans[index] = nums2[i]
|
|
||||||
# 弹出小元素
|
|
||||||
# 这个代码一定要放在 if 外面。否则单调栈的逻辑就不成立了
|
|
||||||
stack.pop()
|
|
||||||
stack.append(i)
|
|
||||||
return ans
|
|
||||||
```
|
```
|
||||||
### Go:
|
### Go:
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user