首页 > 编程语言 >编程题之Daily Temperatures

编程题之Daily Temperatures

时间:2024-08-12 15:53:15浏览次数:6  
标签:int 编程 Daily length Temperatures var input stack temperatures

LeetCode原题地址

https://leetcode.com/problems/daily-temperatures/

题目介绍

Given an array of integers temperatures represents the daily temperatures, return an array answer such that answer[i] is the number of days you have to wait after the ith day to get a warmer temperature. If there is no future day for which this is possible, keep answer[i] == 0 instead.

Example 1:

Input: temperatures = [73,74,75,71,69,72,76,73]
Output: [1,1,4,2,1,1,0,0]
Example 2:

Input: temperatures = [30,40,50,60]
Output: [1,1,1,0]
Example 3:

Input: temperatures = [30,60,90]
Output: [1,1,0]

本能写法

 public static int[] Calculte(int[] input)
 {
     var length = input.Length;
     var result = new int[length];

     for (int i = 0; i < length; i++)
     {
         for (int j = i + 1; j < length; j++)
         {
             if (input[j] > input[i])
             {
                 result[i] = j - i;
                 break;
             }
         }
     }
     return result;
 }

使用Stack降低复杂度

 public static int[] DailyTemperatures(int[] input)
 {
     var length = input.Length;
     int[] res = new int[length];
	 
	  Stack<int> stack = new Stack<int>();

     for (var i = 0; i < length; i++)
     {
         while (stack.Count != 0 && input[i] > input[stack.Peek()])
         {
             var top = stack.Pop();
             res[top] = i - top;
         }
         stack.Push(i);
     }
     return res;
 }

标签:int,编程,Daily,length,Temperatures,var,input,stack,temperatures
From: https://www.cnblogs.com/talentzemin/p/18355094

相关文章

  • 这年头,程序员开始卷AI编程了?
    在AI技术飞速发展的背景下,相信大家都有目共睹,各种AI技术的普及让很多复杂的工作变得简单高效,如大语言模型和AI绘画、AI视频等,但是目前最吸引我的莫过于“AI代码生成”。在过去,每次有新技术出现时,我们都需要花大量时间去学习,比如一门新的语言,即便是资深的程序员至少要了解其......
  • 关于异步编程和多线程的高级.NET Core面试题
    以下是一些关于异步编程和多线程的高级.NETCore面试题。这些问题涵盖了从基础概念到复杂应用的各个方面,可以帮助评估候选人在异步编程和多线程开发方面的能力。1.异步编程基础在.NETCore中,异步编程的基本原理是什么?async和await关键字的作用是什么?如何在.NETCore中使用......
  • Linux系统编程、网络编程
    Linux系统编程、网络编程前言一、进程的退出正常退出异常退出父进程等待子进程退出为什么要等待子进程退出二、消息队列消息队列操作:形象举例:疑惑点疑惑点一三、信号疑惑点1.signal函数的原型:四、线程疑惑点1.线程的创建1.1intpthread_create函数每个参数的含义......
  • Linux-文件编程
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档Linux-文件编程前言一、文件1.文件的打开和创建2.文件的写入3.文件的读取4.文件的光标移动5.实现cp命令(复制文件)二、进程父进程与子进程(创建进程发生了什么事)(面)main()二、使用步骤1.引入库2.读入数据总......
  • 通过JUnit源码分析学习编程的奇技淫巧
    打开Maven仓库,左边选项栏排在第一的就是测试框架与工具,今天的文章,V哥要来聊一聊程序员必备的测试框架JUnit的源码实现,整理的学习笔记,分享给大家。有人说,不就一个测试框架嘛,有必要去了解它的源码吗?确实,在平时的工作中,我们只要掌握如何使用JUnit框架来帮我们测试代码即可,搞什......
  • 341本阿里巴巴系列精品编程技术电子书合集
    获取方式341本阿里巴巴系列精品编程技术电子书合集。分享推荐电子资料《阿里巴巴Java开发手册》(终极版)《阿里云实时计算Flink版解决方案白皮书-2021版》《Python脚本速查手册》《Shell脚本速查手册》《Flutter企业级应用开发实战手册》《云原生开发者洞察白皮书》......
  • 编程技巧 --- 远程调试
    引言最近在做的项目上做了一些性能优化的工作,用到了VisualStudio远程调试,所以本篇文章整理一下远程调试技巧。首先,了解一下VisualStudio远程调试是什么?VisualStudio的远程调试功能允许在本地调试远程计算机上运行的应用程序。用远程调试,可以在本地计算机上设置断点、查......
  • C++提高编程—4、STL常用容器—list(链表)和queue(队列)
    7list容器 7.1基本概念 7.2 构造函数 7.3 赋值和交换 7.4 大小操作  使用10000来填充。7.5 插入与删除 7.6 数据存取 7.7 反转与排序  8set/multset容器 7.1基本概念7.2 构造和赋值7.3大小和交换7.4 插入与删除7.5 查......
  • 植入式可编程微型电流刺激器解决方案之硬件设计调试总结
    前记 微电流刺激仪,是指利用低强度特定波形电流刺激大脑、下丘脑、边缘网状结构,调节大脑兴奋性,治疗失眠、焦虑或缓解症状。随着近些年新的医疗方式和科学研究的不断深入。这类技术在生物学以及医疗健康领域变得愈加重要了。笔者团队有幸参与了国内一家科研项目,并把该设备做成实际......
  • 03-react基础-面向组件编程(重要属性-props)
    props属性props的基本使用对props进行限制props简写函数式组件使用propsprops的基本使用作用:通过标签属性从组件外向组件内传递变化的数据<scripttype="text/babel">//创建组件classPersonextendsReact.Component{render(){......