当前位置: 首页 > news >正文

代码随想录day41:part13

739. 每日温度

public int[] dailyTemperatures(int[] T) {Stack<Integer> stack = new Stack<>(); // 创建一个栈来存储索引int length = T.length; // 温度数组的长度int[] result = new int[length]; // 初始化结果数组for (int i = 0; i < length; i++) { // 遍历温度数组// 当栈不为空且当前温度大于栈顶温度while (!stack.isEmpty() && T[i] > T[stack.peek()]) {int pre = stack.pop(); // 弹出栈顶索引result[pre] = i - pre; // 计算天数差并存入结果数组}stack.add(i); // 将当前索引入栈}return result; // 返回结果数组
}

496. 下一个更大元素 I

class Solution {public int[] nextGreaterElement(int[] nums1, int[] nums2) {int n = nums1.length;// 创建一个哈希表,存储 nums1 中元素及其索引Map<Integer, Integer> idx = new HashMap<>(n);for (int i = 0; i < n; i++) {idx.put(nums1[i], i); // nums1 的元素作为键,索引作为值}int[] ans = new int[n]; // 结果数组Arrays.fill(ans, -1); // 初始化结果数组为 -1Deque<Integer> st = new ArrayDeque<>(); // 创建一个栈// 遍历 nums2for (int x : nums2) {// 当栈不为空且当前元素 x 大于栈顶元素while (!st.isEmpty() && x > st.peek()) {// x 是栈顶的下一个更大元素// 记录答案ans[idx.get(st.pop())] = x; // 弹出栈顶元素并记录其下一个更大元素}// 如果 x 在 nums1 中if (idx.containsKey(x)) {st.push(x); // 将 x 入栈}}return ans; // 返回结果数组}
}

503. 下一个更大元素 II

class Solution {public int[] nextGreaterElements(int[] nums) {int n = nums.length; // 获取数组的长度int[] ans = new int[n]; // 初始化结果数组Arrays.fill(ans, -1); // 默认填充为 -1Deque<Integer> st = new ArrayDeque<>(); // 创建一个栈// 遍历数组两次,模拟循环效果for (int i = 0; i < 2 * n; i++) {int x = nums[i % n]; // 当前元素,使用模运算来处理循环// 比较当前元素与栈顶元素while (!st.isEmpty() && x > nums[st.peek()]) {// x 是 nums[st.peek()] 的下一个更大元素ans[st.pop()] = x; // 更新结果数组}// 只在前 n 个元素中入栈if (i < n) {st.push(i); // 将当前索引入栈}}return ans; // 返回结果数组}
}


http://www.mrgr.cn/news/53039.html

相关文章:

  • ubuntu编译kaldi和vosk
  • 【MATLAB 串口调试+虚拟串口测试】
  • 解决eclipse自动补全代码后会删除后面标黄的代码
  • Flink SQL+Hudi数据入湖与分析实践
  • 法人供应商绩效数据线上化PRD
  • 机械转行网络安全自学经历,零基础学网络安全,血泪总结的干货,零基础入门到精通,收藏这篇就够了
  • 邮件营销标题策略:提升邮件打开率的秘诀?
  • 如何使用代理保护电子邮件?
  • 【项目案例分享|易知微智慧工厂车间生产线数字孪生管理系统
  • 多张图片合并成一张怎么操作?8种合并方法值得你尝试一下!
  • 最详细的Python安装教程
  • 公司新来一个同事,把枚举运用得炉火纯青...
  • 数据抓取时,使用动态IP要注意哪些?
  • 关于小程序审核需要提交订单列表页面path的修改办法
  • Go程序的一生——Go如何跑起来的?
  • 【含文档】基于Springboot+Vue的城市公交在线查询系统(含源码+数据库+lw)
  • 【Ansiable】ansible的模块和主机清单
  • Jmeter 分布式压测
  • 【echart 数据大屏常用图表配置-柱状图】
  • 自动化运维工具——ansible