Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[pull] master from youngyangyang04:master #9

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
pull merged 13 commits into AlgorithmAndLeetCode:master from youngyangyang04:master
Jun 5, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
13 commits
Select commit Hold shift + click to select a range
ab4d42c
Update 0739.每日温度.md
n4feng May 14, 2022
78b367e
添加 0151.翻转字符串里的单词.md Scala版本
wzqwtt May 15, 2022
c7d356f
添加 剑指Offer58-II.左旋转字符串.md Scala版本
wzqwtt May 15, 2022
f1061d0
Update 0056.合并区间.md - -规范C++代码中的lambda表述
wangp-blog May 15, 2022
224b3d2
修改:0404左叶子之和javascript版本调用方法
heiyu4585 May 15, 2022
14afd23
更新0516.最长回文子序列的Go实现提供了一种更优的方法
Hanmengnan May 16, 2022
34b4ffa
Merge branch 'master' of github.com:Hanmengnan/leetcode-master
Hanmengnan May 16, 2022
22be943
Merge branch 'master' into patch-1
youngyangyang04 Jun 5, 2022
82eb85f
Merge pull request #1331 from n4feng/patch-1
youngyangyang04 Jun 5, 2022
8d88e50
Merge pull request #1332 from wzqwtt/patch11
youngyangyang04 Jun 5, 2022
039100b
Merge pull request #1333 from GitHubQAQ/patch-1
youngyangyang04 Jun 5, 2022
b2b3227
Merge pull request #1335 from heiyu4585/master
youngyangyang04 Jun 5, 2022
be18cd3
Merge pull request #1336 from Hanmengnan/master
youngyangyang04 Jun 5, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion problems/0056.合并区间.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ public:
vector<vector<int>> merge(vector<vector<int>>& intervals) {
vector<vector<int>> result;
if (intervals.size() == 0) return result;
// 排序的参数使用了lamda表达式
// 排序的参数使用了lambda表达式
sort(intervals.begin(), intervals.end(), [](const vector<int>& a, const vector<int>& b){return a[0] < b[0];});

result.push_back(intervals[0]);
Expand Down
56 changes: 56 additions & 0 deletions problems/0151.翻转字符串里的单词.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -758,7 +758,63 @@ func reverseWord(_ s: inout [Character]) {
}
```

Scala:

```scala
object Solution {
def reverseWords(s: String): String = {
var sb = removeSpace(s) // 移除多余的空格
reverseString(sb, 0, sb.length - 1) // 翻转字符串
reverseEachWord(sb)
sb.mkString
}

// 移除多余的空格
def removeSpace(s: String): Array[Char] = {
var start = 0
var end = s.length - 1
// 移除字符串前面的空格
while (start < s.length && s(start) == ' ') start += 1
// 移除字符串后面的空格
while (end >= 0 && s(end) == ' ') end -= 1
var sb = "" // String
// 当start小于等于end的时候,执行添加操作
while (start <= end) {
var c = s(start)
// 当前字符不等于空,sb的最后一个字符不等于空的时候添加到sb
if (c != ' ' || sb(sb.length - 1) != ' ') {
sb ++= c.toString
}
start += 1 // 指针向右移动
}
sb.toArray
}

// 翻转字符串
def reverseString(s: Array[Char], start: Int, end: Int): Unit = {
var (left, right) = (start, end)
while (left < right) {
var tmp = s(left)
s(left) = s(right)
s(right) = tmp
left += 1
right -= 1
}
}

// 翻转每个单词
def reverseEachWord(s: Array[Char]): Unit = {
var i = 0
while (i < s.length) {
var j = i + 1
// 向后迭代寻找每个单词的坐标
while (j < s.length && s(j) != ' ') j += 1
reverseString(s, i, j - 1) // 翻转每个单词
i = j + 1 // i往后更新
}
}
}
```



Expand Down
4 changes: 2 additions & 2 deletions problems/0404.左叶子之和.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -336,8 +336,8 @@ var sumOfLeftLeaves = function(root) {
if(node===null){
return 0;
}
let leftValue = sumOfLeftLeaves(node.left);
let rightValue = sumOfLeftLeaves(node.right);
let leftValue = nodesSum(node.left);
let rightValue = nodesSum(node.right);
// 3. 单层递归逻辑
let midValue = 0;
if(node.left&&node.left.left===null&&node.left.right===null){
Expand Down
35 changes: 17 additions & 18 deletions problems/0516.最长回文子序列.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -186,29 +186,28 @@ class Solution:
Go:
```Go
func longestPalindromeSubseq(s string) int {
lenth:=len(s)
dp:=make([][]int,lenth)
for i:=0;i<lenth;i++{
for j:=0;j<lenth;j++{
if dp[i]==nil{
dp[i]=make([]int,lenth)
}
if i==j{
dp[i][j]=1
}
size := len(s)
max := func(a, b int) int {
if a > b {
return a
}
return b
}
for i:=lenth-1;i>=0;i--{
for j:=i+1;j<lenth;j++{
if s[i]==s[j]{
dp[i][j]=dp[i+1][j-1]+2
}else {
dp[i][j]=max(dp[i+1][j],dp[i][j-1])
dp := make([][]int, size)
for i := 0; i < size; i++ {
dp[i] = make([]int, size)
dp[i][i] = 1
}
for i := size - 1; i >= 0; i-- {
for j := i + 1; j < size; j++ {
if s[i] == s[j] {
dp[i][j] = dp[i+1][j-1] + 2
} else {
dp[i][j] = max(dp[i][j-1], dp[i+1][j])
}
}
}

return dp[0][lenth-1]
return dp[0][size-1]
}
```

Expand Down
3 changes: 2 additions & 1 deletion problems/0739.每日温度.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@

那么单调栈的原理是什么呢?为什么时间复杂度是O(n)就可以找到每一个元素的右边第一个比它大的元素位置呢?

单调栈的本质是空间换时间,因为在遍历的过程中需要用一个栈来记录右边第一个比当前元素大的元素,优点是只需要遍历一次。

单调栈的本质是空间换时间,因为在遍历的过程中需要用一个栈来记录右边第一个比当前元素高的元素,优点是只需要遍历一次。


在使用单调栈的时候首先要明确如下几点:
Expand Down
29 changes: 28 additions & 1 deletion problems/剑指Offer58-II.左旋转字符串.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,34 @@ func reverseString(_ s: inout [Character], startIndex: Int, endIndex: Int) {
}
```


Scala:

```scala
object Solution {
def reverseLeftWords(s: String, n: Int): String = {
var str = s.toCharArray // 转换为Array
// abcdefg => ba cdefg
reverseString(str, 0, n - 1)
// ba cdefg => ba gfedc
reverseString(str, n, str.length - 1)
// ba gfedc => cdefgab
reverseString(str, 0, str.length - 1)
// 最终返回,return关键字可以省略
new String(str)
}
// 翻转字符串
def reverseString(s: Array[Char], start: Int, end: Int): Unit = {
var (left, right) = (start, end)
while (left < right) {
var tmp = s(left)
s(left) = s(right)
s(right) = tmp
left += 1
right -= 1
}
}
}
```



Expand Down

AltStyle によって変換されたページ (->オリジナル) /