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

Commit 8dc66e3

Browse files
Merge pull request youngyangyang04#2219 from fwqaaq/master-1
Update 0084.柱状图中最大的矩形.md 代码重复
2 parents f1c54e6 + 3f42828 commit 8dc66e3

File tree

1 file changed

+0
-56
lines changed

1 file changed

+0
-56
lines changed

‎problems/0084.柱状图中最大的矩形.md‎

Lines changed: 0 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -725,62 +725,6 @@ impl Solution {
725725
}
726726
```
727727

728-
Rust
729-
730-
双指针预处理
731-
```rust
732-
733-
impl Solution {
734-
pub fn largest_rectangle_area(v: Vec<i32>) -> i32 {
735-
let n = v.len();
736-
let mut left_smaller_idx = vec![-1; n];
737-
let mut right_smaller_idx = vec![n as i32; n];
738-
for i in 1..n {
739-
let mut mid = i as i32 - 1;
740-
while mid >= 0 && v[mid as usize] >= v[i] {
741-
mid = left_smaller_idx[mid as usize];
742-
}
743-
left_smaller_idx[i] = mid;
744-
}
745-
for i in (0..n-1).rev() {
746-
let mut mid = i + 1;
747-
while mid < n && v[mid] >= v[i] {
748-
mid = right_smaller_idx[mid] as usize;
749-
}
750-
right_smaller_idx[i] = mid as i32;
751-
}
752-
let mut res = 0;
753-
for (idx, &e) in v.iter().enumerate() {
754-
res = res.max((right_smaller_idx[idx] - left_smaller_idx[idx] - 1) * e);
755-
}
756-
dbg!(res)
757-
}
758-
}
759-
```
760-
761-
单调栈
762-
```rust
763-
impl Solution {
764-
pub fn largest_rectangle_area1(mut v: Vec<i32>) -> i32 {
765-
v.insert(0, 0); // 便于使第一个元素能够有左侧<=它的值
766-
v.push(0); // 便于在结束处理最后一个元素后清空残留在栈中的值
767-
let mut res = 0;
768-
let mut stack = vec![]; // 递增的栈
769-
for (idx, &e) in v.iter().enumerate() {
770-
while !stack.is_empty() && v[*stack.last().unwrap()] > e {
771-
let pos = stack.pop().unwrap();
772-
let prev_pos = *stack.last().unwrap();
773-
let s = (idx - prev_pos - 1) as i32 * v[pos];
774-
res = res.max(s);
775-
}
776-
stack.push(idx);
777-
}
778-
res
779-
}
780-
}
781-
```
782-
783-
784728
<p align="center">
785729
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
786730
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>

0 commit comments

Comments
(0)

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