当前位置:   article > 正文

算法训练营day62

算法训练营day62

题目1:739. 每日温度 - 力扣(LeetCode)

真 暴力解法,但会超时

  1. class Solution {
  2. public:
  3. vector<int> dailyTemperatures(vector<int>& temperatures) {
  4. vector<int> reslut;
  5. for(int i = 0;i < temperatures.size();i++) {
  6. int num = 0;
  7. for(int j = i + 1;j < temperatures.size();j++) {
  8. if(temperatures[j] > temperatures[i]) {
  9. num = j - i;
  10. break;
  11. }
  12. }
  13. reslut.push_back(num);
  14. }
  15. return reslut;
  16. }
  17. };

单调栈解法

  1. class Solution {
  2. public:
  3. vector<int> dailyTemperatures(vector<int>& temperatures) {
  4. stack<int> st;
  5. vector<int> reslut(temperatures.size(), 0);
  6. st.push(0);
  7. for(int i = 1;i < temperatures.size();i++) {
  8. while(!st.empty() && temperatures[i] > temperatures[st.top()]) {
  9. reslut[st.top()] = i - st.top();
  10. st.pop();
  11. }
  12. st.push(i);
  13. }
  14. return reslut;
  15. }
  16. };

题目2:496. 下一个更大元素 I - 力扣(LeetCode)

在上一题的基础上加了一个,map确定  数组num1里元素最右边的值

  1. class Solution {
  2. public:
  3. vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {
  4. vector<int> reslut(nums1.size(), -1);
  5. stack<int> st;
  6. unordered_map<int, int> map;
  7. for(int i = 0;i < nums1.size();i++) {
  8. map[nums1[i]] = i;
  9. }
  10. for(int i = 0;i < nums2.size();i++) {
  11. while(!st.empty() && nums2[i] > nums2[st.top()]) {
  12. if(map.find(nums2[st.top()]) != map.end()) {
  13. reslut[map[nums2[st.top()]]] = nums2[i];
  14. }
  15. st.pop();
  16. }
  17. st.push(i);
  18. }
  19. return reslut;
  20. }
  21. };

题目3:503. 下一个更大元素 II - 力扣(LeetCode)

  1. class Solution {
  2. public:
  3. vector<int> nextGreaterElements(vector<int>& nums) {
  4. vector<int> reslut(nums.size(), -1);
  5. stack<int> st;
  6. for(int i = 0;i < nums.size() * 2;i++) {
  7. while(!st.empty() && nums[i % nums.size()] > nums[st.top()]) {
  8. reslut[st.top()] = nums[i % nums.size()];
  9. st.pop();
  10. }
  11. st.push(i % nums.size());
  12. }
  13. return reslut;
  14. }
  15. };

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/757842
推荐阅读
相关标签
  

闽ICP备14008679号