From f35ecefd54a74b90f65742a231c5a113f7d19724 Mon Sep 17 00:00:00 2001 From: axbybgl <77483537+axbybgl@users.noreply.github.com> Date: Thu, 29 Sep 2022 10:51:23 +0800 Subject: [PATCH 01/13] =?UTF-8?q?Update=200150.=E9=80=86=E6=B3=A2=E5=85=B0?= =?UTF-8?q?=E8=A1=A8=E8=BE=BE=E5=BC=8F=E6=B1=82=E5=80=BC.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0150.逆波兰表达式求值.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/problems/0150.逆波兰表达式求值.md b/problems/0150.逆波兰表达式求值.md index 8107e4e0..257bbb9a 100644 --- a/problems/0150.逆波兰表达式求值.md +++ b/problems/0150.逆波兰表达式求值.md @@ -89,26 +89,32 @@ C++代码如下: class Solution { public: int evalRPN(vector& tokens) { - stack st; + // 考虑到第20个样例使用int会溢出 + // 此处使用long long来存储number + // 在最后用int()强行转换成int输出 + + stack st; for (int i = 0; i < tokens.size(); i++) { if (tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "*" || tokens[i] == "/") { - int num1 = st.top(); + long long num1 = st.top(); st.pop(); - int num2 = st.top(); + long long num2 = st.top(); st.pop(); if (tokens[i] == "+") st.push(num2 + num1); if (tokens[i] == "-") st.push(num2 - num1); if (tokens[i] == "*") st.push(num2 * num1); if (tokens[i] == "/") st.push(num2 / num1); } else { - st.push(stoi(tokens[i])); + st.push(atoll(tokens[i].c_str())); } } - int result = st.top(); + + long long result = st.top(); st.pop(); // 把栈里最后一个元素弹出(其实不弹出也没事) - return result; + return int(result); } }; + ``` ## 题外话 From 4d6b8252a1d51b0cef64e5b4739ef21329bdd41c Mon Sep 17 00:00:00 2001 From: chenzhg <2216468566@qq.com> Date: Thu, 29 Sep 2022 17:31:58 +0800 Subject: [PATCH 02/13] =?UTF-8?q?Update=200583.=E4=B8=A4=E4=B8=AA=E5=AD=97?= =?UTF-8?q?=E7=AC=A6=E4=B8=B2=E7=9A=84=E5=88=A0=E9=99=A4=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=20C++?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0583.两个字符串的删除操作.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/problems/0583.两个字符串的删除操作.md b/problems/0583.两个字符串的删除操作.md index fd80853e..c33f7f58 100644 --- a/problems/0583.两个字符串的删除操作.md +++ b/problems/0583.两个字符串的删除操作.md @@ -47,6 +47,8 @@ dp[i][j]:以i-1为结尾的字符串word1,和以j-1位结尾的字符串word 那最后当然是取最小值,所以当word1[i - 1] 与 word2[j - 1]不相同的时候,递推公式:dp[i][j] = min({dp[i - 1][j - 1] + 2, dp[i - 1][j] + 1, dp[i][j - 1] + 1}); +因为dp[i - 1][j - 1] + 1等于 dp[i - 1][j] 或 dp[i][j - 1],所以递推公式可简化为:dp[i][j] = min(dp[i - 1][j] + 1, dp[i][j - 1] + 1); + 3. dp数组如何初始化 @@ -90,7 +92,7 @@ public: if (word1[i - 1] == word2[j - 1]) { dp[i][j] = dp[i - 1][j - 1]; } else { - dp[i][j] = min({dp[i - 1][j - 1] + 2, dp[i - 1][j] + 1, dp[i][j - 1] + 1}); + dp[i][j] = min(dp[i - 1][j] + 1, dp[i][j - 1] + 1); } } } From 755ba1b0786dbc3fad56f31c54de7f4727b23819 Mon Sep 17 00:00:00 2001 From: fw_qaq <82551626+Jack-Zhang-1314@users.noreply.github.com> Date: Thu, 29 Sep 2022 18:34:49 +0800 Subject: [PATCH 03/13] =?UTF-8?q?update=20707.=E8=AE=BE=E8=AE=A1=E9=93=BE?= =?UTF-8?q?=E8=A1=A8=20about=20rust?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0707.设计链表.md | 88 +++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/problems/0707.设计链表.md b/problems/0707.设计链表.md index 83e57fec..1f7e6cbf 100644 --- a/problems/0707.设计链表.md +++ b/problems/0707.设计链表.md @@ -1240,6 +1240,94 @@ class MyLinkedList() { } ``` +Rust: + +```rust +#[derive(Debug)] +pub struct MyLinkedList { + pub val: i32, + pub next: Option>, +} + +impl MyLinkedList { + fn new() -> Self { + // 增加头节点 + MyLinkedList { val: 0, next: None } + } + + fn get(&self, index: i32) -> i32 { + if index < 0 { + return -1; + } + let mut i = 0; + let mut cur = &self.next; + while let Some(node) = cur { + if i == index { + return node.val; + } + i += 1; + cur = &node.next; + } + -1 + } + + fn add_at_head(&mut self, val: i32) { + let new_node = Box::new(MyLinkedList { + val, + next: self.next.take(), + }); + self.next = Some(new_node); + } + + fn add_at_tail(&mut self, val: i32) { + let new_node = Box::new(MyLinkedList { val, next: None }); + let mut last_node = &mut self.next; + while let Some(node) = last_node { + last_node = &mut node.next; + } + *last_node = Some(new_node); + } + + fn add_at_index(&mut self, index: i32, val: i32) { + if index <= 0 { + self.add_at_head(val); + } else { + let mut i = 0; + let mut cur = &mut self.next; + while let Some(node) = cur { + if i + 1 == index { + let new_node = Box::new(MyLinkedList { + val, + next: node.next.take(), + }); + node.next = Some(new_node); + break; + } + i += 1; + cur = &mut node.next; + } + } + } + + fn delete_at_index(&mut self, index: i32) { + if index < 0 { + return; + } + + let mut i = 0; + let mut cur = self; + while let Some(node) = cur.next.take() { + if i == index { + cur.next = node.next; + break; + } + i += 1; + cur.next = Some(node); + cur = cur.next.as_mut().unwrap(); + } + } +} +``` -----------------------
From 12f2ecf564c232edcd4a0d1eb143a9aa9aed05d3 Mon Sep 17 00:00:00 2001 From: vanyongqi <46806467+vanyongqi@users.noreply.github.com> Date: Fri, 30 Sep 2022 10:20:50 +0800 Subject: [PATCH 04/13] =?UTF-8?q?Update=200035.=E6=90=9C=E7=B4=A2=E6=8F=92?= =?UTF-8?q?=E5=85=A5=E4=BD=8D=E7=BD=AE.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加C语言的两种版本,已通过Leetcode测试 --- problems/0035.搜索插入位置.md | 52 ++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/problems/0035.搜索插入位置.md b/problems/0035.搜索插入位置.md index 4b17bec6..98984f9e 100644 --- a/problems/0035.搜索插入位置.md +++ b/problems/0035.搜索插入位置.md @@ -429,7 +429,57 @@ function searchInsert($nums, $target) return $r + 1; } ``` - +### C +```c +//版本一 [left, right]左闭右闭区间 +int searchInsert(int* nums, int numsSize, int target){ + //左闭右开区间 [0 , numsSize-1] + int left =0; + int mid =0; + int right = numsSize - 1; + while(left <= right){//左闭右闭区间 所以可以 left == right + mid = left + (right - left) / 2; + if(target < nums[mid]){ + //target 在左区间 [left, middle - 1]中,原区间包含mid,右区间边界可以向左内缩 + right = mid -1; + }else if( target > nums[mid]){ + // target 在右区间 [mid + 1, right]中,原区间包含mid,左区间边界可以向右内缩 + left = mid + 1; + }else { + // nums[mid] == target ,顺利找到target,直接返回mid + return mid; + } + } + //数组中未找到target元素 + //target在数组所有元素之后,[left, right]是右闭区间,需要返回 right +1 + return right + 1; +} +``` +```c +//版本二 [left, right]左闭右开区间 +int searchInsert(int* nums, int numsSize, int target){ + //左闭右开区间 [0 , numsSize) + int left =0; + int mid =0; + int right = numsSize; + while(left < right){//左闭右闭区间 所以 left < right + mid = left + (right - left) / 2; + if(target < nums[mid]){ + //target 在左区间 [left, mid)中,原区间没有包含mid,右区间边界可以不能内缩 + right = mid ; + }else if( target > nums[mid]){ + // target 在右区间 [mid+1, right)中,原区间包含mid,左区间边界可以向右内缩 + left = mid + 1; + }else { + // nums[mid] == target ,顺利找到target,直接返回mid + return mid; + } + } + //数组中未找到target元素 + //target在数组所有元素之后,[left, right)是右开区间, return right即可 + return right; +} +``` -----------------------
From 4276745f1ba4b048c022013edddb89d3959fd49b Mon Sep 17 00:00:00 2001 From: vanyongqi <46806467+vanyongqi@users.noreply.github.com> Date: Fri, 30 Sep 2022 10:23:25 +0800 Subject: [PATCH 05/13] =?UTF-8?q?Update=200035.=E6=90=9C=E7=B4=A2=E6=8F=92?= =?UTF-8?q?=E5=85=A5=E4=BD=8D=E7=BD=AE.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加C语言两种版本,通过Leetcode测试 --- problems/0035.搜索插入位置.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/problems/0035.搜索插入位置.md b/problems/0035.搜索插入位置.md index 98984f9e..cd2c88eb 100644 --- a/problems/0035.搜索插入位置.md +++ b/problems/0035.搜索插入位置.md @@ -440,10 +440,10 @@ int searchInsert(int* nums, int numsSize, int target){ while(left <= right){//左闭右闭区间 所以可以 left == right mid = left + (right - left) / 2; if(target < nums[mid]){ - //target 在左区间 [left, middle - 1]中,原区间包含mid,右区间边界可以向左内缩 + //target 在左区间 [left, mid - 1]中,原区间包含mid,右区间边界可以向左内缩 right = mid -1; }else if( target > nums[mid]){ - // target 在右区间 [mid + 1, right]中,原区间包含mid,左区间边界可以向右内缩 + //target 在右区间 [mid + 1, right]中,原区间包含mid,左区间边界可以向右内缩 left = mid + 1; }else { // nums[mid] == target ,顺利找到target,直接返回mid @@ -465,7 +465,7 @@ int searchInsert(int* nums, int numsSize, int target){ while(left < right){//左闭右闭区间 所以 left < right mid = left + (right - left) / 2; if(target < nums[mid]){ - //target 在左区间 [left, mid)中,原区间没有包含mid,右区间边界可以不能内缩 + //target 在左区间 [left, mid)中,原区间没有包含mid,右区间边界不能内缩 right = mid ; }else if( target > nums[mid]){ // target 在右区间 [mid+1, right)中,原区间包含mid,左区间边界可以向右内缩 From 2772fd498da7160313210e1b58b2b86d907ac96a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=98=82=E8=AC=99?= Date: Fri, 30 Sep 2022 14:48:18 +0800 Subject: [PATCH 06/13] =?UTF-8?q?update=20455.=E5=88=86=E7=99=BC=E9=A4=85?= =?UTF-8?q?=E4=B9=BE=20C=E8=AA=9E=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0455.分发饼干.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/problems/0455.分发饼干.md b/problems/0455.分发饼干.md index f9e8e7f1..93a4c2d3 100644 --- a/problems/0455.分发饼干.md +++ b/problems/0455.分发饼干.md @@ -274,6 +274,7 @@ function findContentChildren(g: number[], s: number[]): number { ### C ```c +///小餅乾先餵飽小胃口的 int cmp(int* a, int* b) { return *a - *b; } @@ -296,6 +297,33 @@ int findContentChildren(int* g, int gSize, int* s, int sSize){ } ``` +```c +///大餅乾先餵飽大胃口的 +int cmp(int* a, int* b) { + return *a - *b; +} + +int findContentChildren(int* g, int gSize, int* s, int sSize){ + if(sSize == 0) + return 0; + + //将两个数组排序为升序 + qsort(g, gSize, sizeof(int), cmp); + qsort(s, sSize, sizeof(int), cmp); + + int count = 0; + int start = sSize - 1; + + for(int i = gSize - 1; i >= 0; i--) { + if(start >= 0 && s[start] >= g[i] ) { + start--; + count++; + } + } + return count; +} +``` + ### Scala ```scala From a8a98842cb6deb7c365e5e47790b1472abe064ad Mon Sep 17 00:00:00 2001 From: fw_qaq <82551626+Jack-Zhang-1314@users.noreply.github.com> Date: Sat, 1 Oct 2022 12:36:16 +0800 Subject: [PATCH 07/13] =?UTF-8?q?update=20206=E7=BF=BB=E8=BD=AC=E9=93=BE?= =?UTF-8?q?=E8=A1=A8=20about=20rust?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0206.翻转链表.md | 40 +++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/problems/0206.翻转链表.md b/problems/0206.翻转链表.md index e97befee..009b4469 100644 --- a/problems/0206.翻转链表.md +++ b/problems/0206.翻转链表.md @@ -588,5 +588,45 @@ object Solution { } ``` + +Rust: +双指针法: + +```rust +impl Solution { + pub fn reverse_list(head: Option>) -> Option> { + let mut cur = head; + let mut pre = None; + while let Some(mut node) = cur.take() { + cur = node.next; + node.next = pre; + pre = Some(node); + } + pre + } +} +``` + +递归法: + +```rust +impl Solution { + pub fn reverse_list(head: Option>) -> Option> { + fn rev( + mut head: Option>, + mut pre: Option>, + ) -> Option> { + if let Some(mut node) = head.take() { + let cur = node.next; + node.next = pre; + pre = Some(node); + return rev(cur, pre); + } + pre + } + rev(head, None) + } +} +``` -----------------------
From 987380ca9327a5e097d1b0a7661586eeb2f088d2 Mon Sep 17 00:00:00 2001 From: fw_qaq <82551626+Jack-Zhang-1314@users.noreply.github.com> Date: Sat, 1 Oct 2022 14:32:22 +0800 Subject: [PATCH 08/13] =?UTF-8?q?update=200024.=E4=B8=A4=E4=B8=A4=E4=BA=A4?= =?UTF-8?q?=E6=8D=A2=E9=93=BE=E8=A1=A8=E4=B8=AD=E7=9A=84=E8=8A=82=E7=82=B9?= =?UTF-8?q?=20about=20rust?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../0024.两两交换链表中的节点.md | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/problems/0024.两两交换链表中的节点.md b/problems/0024.两两交换链表中的节点.md index 10337a7f..3b86ac6f 100644 --- a/problems/0024.两两交换链表中的节点.md +++ b/problems/0024.两两交换链表中的节点.md @@ -380,5 +380,30 @@ function swapPairs($head) } ``` +Rust: + +```rust +// 虚拟头节点 +impl Solution { + pub fn swap_pairs(head: Option>) -> Option> { + let mut dummy_head = Box::new(ListNode::new(0)); + dummy_head.next = head; + let mut cur = dummy_head.as_mut(); + while let Some(mut node) = cur.next.take() { + if let Some(mut next) = node.next.take() { + node.next = next.next.take(); + next.next = Some(node); + cur.next = Some(next); + cur = cur.next.as_mut().unwrap().next.as_mut().unwrap(); + } else { + cur.next = Some(node); + cur = cur.next.as_mut().unwrap(); + } + } + dummy_head.next + } +} +``` + -----------------------
From 00ad23f45815ca3a371b6beae65da209433708cf Mon Sep 17 00:00:00 2001 From: fw_qaq <82551626+Jack-Zhang-1314@users.noreply.github.com> Date: Sat, 1 Oct 2022 15:23:53 +0800 Subject: [PATCH 09/13] =?UTF-8?q?Update=200024.=E4=B8=A4=E4=B8=A4=E4=BA=A4?= =?UTF-8?q?=E6=8D=A2=E9=93=BE=E8=A1=A8=E4=B8=AD=E7=9A=84=E8=8A=82=E7=82=B9?= =?UTF-8?q?.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../0024.两两交换链表中的节点.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/problems/0024.两两交换链表中的节点.md b/problems/0024.两两交换链表中的节点.md index 3b86ac6f..d65d0bca 100644 --- a/problems/0024.两两交换链表中的节点.md +++ b/problems/0024.两两交换链表中的节点.md @@ -405,5 +405,26 @@ impl Solution { } ``` +```rust +// 递归 +impl Solution { + pub fn swap_pairs(head: Option>) -> Option> { + if head == None || head.as_ref().unwrap().next == None { + return head; + } + + let mut node = head.unwrap(); + + if let Some(mut next) = node.next.take() { + node.next = Solution::swap_pairs(next.next); + next.next = Some(node); + Some(next) + } else { + Some(node) + } + } +} +``` + -----------------------
From c58be464b4ca65d6d396c744dafbc3df984bf206 Mon Sep 17 00:00:00 2001 From: fw_qaq <82551626+Jack-Zhang-1314@users.noreply.github.com> Date: Sat, 1 Oct 2022 16:21:39 +0800 Subject: [PATCH 10/13] =?UTF-8?q?update=20[19]=20=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E9=93=BE=E8=A1=A8=E7=9A=84=E5=80=92=E6=95=B0=E7=AC=AC=20N=20?= =?UTF-8?q?=E4=B8=AA=E7=BB=93=E7=82=B9=20about=20rust?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0019.删除链表的倒数第N个节点.md | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/problems/0019.删除链表的倒数第N个节点.md b/problems/0019.删除链表的倒数第N个节点.md index a84c0b29..b9859968 100644 --- a/problems/0019.删除链表的倒数第N个节点.md +++ b/problems/0019.删除链表的倒数第N个节点.md @@ -338,5 +338,28 @@ object Solution { } } ``` + +Rust: +```rust +impl Solution { + pub fn remove_nth_from_end(head: Option>, mut n: i32) -> Option> { + let mut dummy_head = Box::new(ListNode::new(0)); + dummy_head.next = head; + let mut fast = &dummy_head.clone(); + let mut slow = &mut dummy_head; + while n > 0 { + fast = fast.next.as_ref().unwrap(); + n -= 1; + } + while fast.next.is_some() { + fast = fast.next.as_ref().unwrap(); + slow = slow.next.as_mut().unwrap(); + } + slow.next = slow.next.as_mut().unwrap().next.take(); + dummy_head.next + } +} +``` + -----------------------
From e4ca3482fbb5202172c6268a10565dfbf116f6fc Mon Sep 17 00:00:00 2001 From: chenzhg <2216468566@qq.com> Date: Sat, 1 Oct 2022 16:25:03 +0800 Subject: [PATCH 11/13] =?UTF-8?q?Update=200072.=E7=BC=96=E8=BE=91=E8=B7=9D?= =?UTF-8?q?=E7=A6=BB=20=E6=B7=BB=E5=8A=A0C=E8=AF=AD=E8=A8=80=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0072.编辑距离.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/problems/0072.编辑距离.md b/problems/0072.编辑距离.md index e40461de..a15012d7 100644 --- a/problems/0072.编辑距离.md +++ b/problems/0072.编辑距离.md @@ -362,6 +362,33 @@ function minDistance(word1: string, word2: string): number { }; ``` +C: + +```c +int min(int num1, int num2, int num3) { + return num1 > num2 ? (num2 > num3 ? num3 : num2) : (num1 > num3 ? num3 : num1); +} + +int minDistance(char * word1, char * word2){ + int dp[strlen(word1)+1][strlen(word2)+1]; + dp[0][0] = 0; + for (int i = 1; i <= strlen(word1); i++) dp[i][0] = i; + for (int i = 1; i <= strlen(word2); i++) dp[0][i] = i; + + for (int i = 1; i <= strlen(word1); i++) { + for (int j = 1; j <=strlen(word2); j++) { + if (word1[i-1] == word2[j-1]) { + dp[i][j] = dp[i-1][j-1]; + } + else { + dp[i][j] = min(dp[i-1][j-1], dp[i][j-1], dp[i-1][j]) + 1; + } + } + } + return dp[strlen(word1)][strlen(word2)]; +} +``` + ----------------------- From 3374f8e875cdd0e77bfbc3db03fcaa497029b817 Mon Sep 17 00:00:00 2001 From: ZGQ Date: Sat, 1 Oct 2022 16:35:27 +0800 Subject: [PATCH 12/13] =?UTF-8?q?feat:0090.=E5=AD=90=E9=9B=86=E2=85=A1?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0Typescript=E7=9A=84set=E5=8E=BB=E9=87=8D?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E9=A2=98=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0090.子集II.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/problems/0090.子集II.md b/problems/0090.子集II.md index 9e7e3bd0..81c0f94a 100644 --- a/problems/0090.子集II.md +++ b/problems/0090.子集II.md @@ -367,6 +367,39 @@ function subsetsWithDup(nums: number[]): number[][] { }; ``` +set去重版本: +```typescript +// 使用set去重版本 +function subsetsWithDup(nums: number[]): number[][] { + const result: number[][] = []; + const path: number[] = []; + // 去重之前先排序 + nums.sort((a, b) => a - b); + function backTracking(startIndex: number) { + // 收集结果 + result.push([...path]) + // 此处不返回也可以因为,每次递归都会使startIndex + 1,当这个数大到nums.length的时候就不会进入递归了。 + if (startIndex === nums.length) { + return + } + // 定义每一个树层的set集合 + const set: Set = new Set() + for (let i = startIndex; i < nums.length; i++) { + // 去重 + if (set.has(nums[i])) { + continue + } + set.add(nums[i]) + path.push(nums[i]) + backTracking(i + 1) + // 回溯 + path.pop() + } + } + backTracking(0) + return result +}; +``` ### Rust ```Rust From b0ec03922ea2081f0aa72e7fccf8a322aa9a9efb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=91=98Carl?= Date: Sun, 2 Oct 2022 10:46:19 +0800 Subject: [PATCH 13/13] =?UTF-8?q?Update=200150.=E9=80=86=E6=B3=A2=E5=85=B0?= =?UTF-8?q?=E8=A1=A8=E8=BE=BE=E5=BC=8F=E6=B1=82=E5=80=BC.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 力扣修改了后端测试数据 --- problems/0150.逆波兰表达式求值.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/problems/0150.逆波兰表达式求值.md b/problems/0150.逆波兰表达式求值.md index 257bbb9a..a0ec5db3 100644 --- a/problems/0150.逆波兰表达式求值.md +++ b/problems/0150.逆波兰表达式求值.md @@ -89,10 +89,7 @@ C++代码如下: class Solution { public: int evalRPN(vector& tokens) { - // 考虑到第20个样例使用int会溢出 - // 此处使用long long来存储number - // 在最后用int()强行转换成int输出 - + // 力扣修改了后台测试数据,需要用longlong stack st; for (int i = 0; i < tokens.size(); i++) { if (tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "*" || tokens[i] == "/") { @@ -105,13 +102,13 @@ public: if (tokens[i] == "*") st.push(num2 * num1); if (tokens[i] == "/") st.push(num2 / num1); } else { - st.push(atoll(tokens[i].c_str())); + st.push(stoll(tokens[i])); } } - long long result = st.top(); + int result = st.top(); st.pop(); // 把栈里最后一个元素弹出(其实不弹出也没事) - return int(result); + return result; } };