贡井区建设局网站久久建工集团
news/
2025/10/3 1:25:07/
文章来源:
贡井区建设局网站,久久建工集团,淘宝网网页版登录,哪个网站做logo设计Problem: 百亿富翁 文章目录 思路解题方法复杂度Code 思路 这是一个单调栈的问题。单调栈是一种特殊的栈结构#xff0c;它的特点是栈中的元素保持单调性。在这个问题中#xff0c;我们需要找到每个元素左边和右边第一个比它大的元素。我们可以使用一个单调递增的栈来解决这个… Problem: 百亿富翁 文章目录 思路解题方法复杂度Code 思路 这是一个单调栈的问题。单调栈是一种特殊的栈结构它的特点是栈中的元素保持单调性。在这个问题中我们需要找到每个元素左边和右边第一个比它大的元素。我们可以使用一个单调递增的栈来解决这个问题。 解题方法 我们使用一个栈和一个二维数组来解决这个问题。栈用来存储元素的索引二维数组用来存储每个元素左边和右边第一个比它大的元素的索引。 复杂度
时间复杂度: O ( n ) O(n) O(n)我们只需要遍历一次数组。 空间复杂度: O ( n ) O(n) O(n)我们需要一个栈和一个二维数组来存储信息。 Code
import java.util.*;
import java.io.*;
// 1:无需package
// 2: 类名必须Main, 不可修改public class Main {static BufferedReader in new BufferedReader(new InputStreamReader(System.in));static PrintWriter out new PrintWriter(new OutputStreamWriter(System.out));static StreamTokenizer sr new StreamTokenizer(in);static int MAXN (int)7e5 10;static int[] arr new int[MAXN];static int[][] ans new int[MAXN][2];static int[] stack new int[MAXN];static int n, r;public static void main(String[] args) throws IOException {n nextInt();for(int i 1; i n; i) {arr[i] nextInt();}deal();for(int i 1; i n; i) {out.print(ans[i][0] );}out.println();for(int i 1; i n; i) {out.print(ans[i][1] );}out.flush();}private static void deal() {r 0;int cur;for(int i 1; i n; i) {while(r 0 arr[stack[r - 1]] arr[i]) {cur stack[--r];ans[cur][0] r 0 ? stack[r - 1] : -1;ans[cur][1] i;}stack[r] i;}while(r 0) {cur stack[--r];ans[cur][0] r 0 ? stack[r - 1] : -1;ans[cur][1] -1;}for(int i n - 1; i 1; i--) {if(ans[i][1] ! -1 arr[ans[i][1]] arr[i]) {ans[i][1] ans[ans[i][1]][1];}}}static int nextInt() throws IOException {sr.nextToken();return (int)sr.nval;}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925469.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!