Вақти беҳтарин барои харидан ва фурӯхтан Stock II Leetcode Solution


Сатҳи душворӣ осон
Аксар вақт пурсида мешавад Amazon DE Шо Facebook Microsoft Morgan Stanley Uber
тартиботи ҳарбӣ Хасис

Изҳороти мушкилот

Дар масъалаи "Вақти беҳтарини харид ва фурӯши саҳмия II" ба мо массиви дода шудааст, ки дар он ҳар як унсури массив нархи саҳмияҳои дар он рӯзбударо дар бар мегирад.

Таърифи амалиёт як саҳмияро харида истодааст ва ин як саҳмияро мефурӯшад.

Вазифаи мо аз он иборат аст, ки дар доираи маҳдудиятҳои зерин фоидаи ҳадди аксарро пайдо кунем:

  1. агар мо саҳмияҳои қаблиро нафурӯшем, мо саҳмияи нав харида наметавонем. ки дар як вақт мо метавонем ҳадди аксар як саҳмия дошта бошем.
  2. мо метавонем ҳамон қадар амалиётро анҷом диҳем.

мисол

prices = [7,1,5,3,6,4]
7

Шарҳ: фоидаи ниҳоӣ, ки ба даст овардан мумкин аст, 7. Тафсилоти амалиёт дар зер оварда шудааст:

Рӯзи аввал: истироҳат

Рӯзи дуюм: харидан

Рӯзи сеюм: фурӯш

Рӯзи чорум: харидан

Рӯзи панҷум: фурӯш

Рӯзи шашум: истироҳат

Равиш барои вақти беҳтарин барои хариду фурӯши Stock II Leetcode Solution

Азбаски мо дар шумораи амалиётҳо ягон маҳдудият надорем, пас мо дар бораи a фикр мекунем алгоритми чашмгурусна Ин ҷо. Пас, ҳар дафъа мо саҳмияҳоро бо нархи ҳадди ақал харида, бо нархи ҳадди аксар мефурӯшем. Мо метавонем онро тавре ҷамъбаст кунем, ки дар ҳар як минимум мо саҳмия мехарем ва дар ҳар як максимум, мо саҳмия мефурӯшем. Ин дар расми дар поён овардашуда шарҳ дода шудааст. Ин қитъаи байни нархи саҳмияҳо ва рӯзҳо мебошад. ҳалли leetcode ба вақти беҳтарин барои харид ва фурӯш саҳҳомии II

Агар мо мушоҳида кунем, ки ҳангоми ба минимум илова кардани арзишҳои хурд максимум ҳосил мешавад, мо онро соддатар карда метавонем. Пас, сарфи назар аз пайгирии ҳар як минимум ва максимум барои ҳисоб кардани фоидаи максималӣ, мо мустақиман он арзишҳоро ба фоидаи худ илова карда метавонем, ки барои он мо нишони мусбатеро пайдо кардем, ки нархҳо [i]> нархҳо [i-1] мебошанд. Илова кардани ҳамаи ин арзишҳо ба мо фоидаи максималӣ медиҳад.

ҳалли leetcode ба вақти беҳтарин барои харид ва фурӯш саҳҳомии II

татбиќи

Рамзи C ++ барои вақти беҳтарин барои харид ва фурӯши саҳҳомии II

#include <bits/stdc++.h> 
using namespace std; 
    int maxProfit(vector<int>& prices) {
        int n=prices.size();
        int ans = 0;
        for (int i = 1; i < n; i++) {
            if (prices[i] > prices[i - 1])
                ans += prices[i] - prices[i - 1];
        }
        return ans;
    }
int main() 
{ 
 vector<int> arr = { 7,1,5,3,6,4 }; 
 cout<<maxProfit(arr)<<endl; 
 return 0;
}
7

Рамзи Java барои вақти беҳтарин барои харид ва фурӯши саҳҳомии II

import java.util.Arrays; 
public class Tutorialcup {
     public static int maxProfit(int[] prices) {
        int ans = 0;
        int n=prices.length;
        for (int i = 1; i < n; i++) {
            if (prices[i] > prices[i - 1])
                ans += prices[i] - prices[i - 1];
        }
        return ans;
    }
  public static void main(String[] args) {
    int [] arr = {7,1,5,3,6,4}; 
    int ans=  maxProfit(arr);
    System.out.println(ans);
  }
}
7

Таҳлили мураккабтарин вақти беҳтарин барои харид ва фурӯш Stock II Leetcode Solution

Мураккабии вақт

Мураккабии вақти рамзи боло дар он аст Эй (н) зеро мо массиви нархҳоро танҳо як маротиба убур мекунем. Дар ин ҷо n дарозии массиви нархҳо мебошад.

Мураккабии фазо

Мураккабии фазоии рамзи дар боло зикршуда О (1) зеро мо хотираро танҳо барои нигоҳ доштани ҷавоб истифода мебарем.

Адабиёт