پاڻي جي بوتلون ليٽ ڪوڊ جو حل


تڪليف جي سطح آسان
بار بار پڇڻ ۾ Microsoft جي
لالچ

مسئلي جو بيان

مسئلو ۾ ”واٽر بوتلون“ اسان کي ٻه قيمتون ڏنل آهن ”نوم بوٽ“ جيڪا پوري پاڻي جي بوتلن جو مڪمل ذخيرو رکي ٿي ۽ ”نون ايڪسچينج“ جن ۾ خالي پاڻي جون بوتلون جو اسان سموري وقت جو ذخيرو ڪري سگهندا ۽ مڪمل پاڻي جي بوتل.

پوري پاڻي جي بوتل مان پاڻي پيئڻ کانپوءِ اها خالي پاڻي جي بوتل ۾ بدلجي ٿي. اسان جو ڪم اهو آهي ته س waterي پاڻي جي بوتلون ڳولڻ لاءِ وڌ کان وڌ نمبر ڳوليو وڃي.

مثال

numBottles = 15, numExchange = 4
19

وضاحت:

پاڻي جي بوتلون ليٽ ڪوڊ جو حل

پهريون دور: پيئندو 15 پاڻي جون بوتلون 15 خالي بوتلون ڏئي ٿي.

ٻيو دور: انهن 15 پاڻي جي بوتلن مان اسان کي 3 مڪمل پاڻي جون بوتلون ملي وينديون آهن ۽ 3 خالي بوتلون ڇڏي وينديون آهن. پيئو 3 پاڻي جون بوتلون اسان ھاڻي ڇڏي 6 خالي بوتلن سان گڏ.

ٽيون گول: انهن 6 پاڻي جي بوتلن مان اسان کي 1 مڪمل پاڻي جي بوتل مليل آهي ۽ 2 خالي بوتلون ڇڏي ويون آهن. 1 پاڻي جون بوتلون پئو اسان ھاڻي ڇڏي 3 خالي بوتلون.

گهٽ ۾ گهٽ 4 بوتلون بدلائڻ جي ضرورت آهي بوتل وڌيڪ خريد ڪرڻ اسان خريد نٿا ڪري سگھون. تنهنڪري وڌ کان وڌ پاڻي جي بوتلون جيڪو اسان پيئندو اهو آهي 15 + 3 + 1 = 19.

پاڻي جي بوتلن لاءِ ليٽ ڪوڊ حل

مسئلو حل ڪرڻ لاءِ بنيادي طريقي ڪار اهو آهي ته جيڪو سوال پڇن ٿا.

  1. پوري پاڻي جي بوتلون پئيو ته پوءِ اهو خالي پاڻي جي بوتلن تي بدلائي ٿو.
  2. سڀني خالي پاڻي جي بوتلن کان مڪمل پاڻي جون بوتلون خريد ڪن
  3. انهن مرحلن کي ٻيهر ورجائيندا رهو جيستائين اسان خالي پاڻيءَ جي بوتل مان مڪمل پاڻي جي بوتل خريد نٿا ڪري سگهون.
  4. پوري پاڻي جون بوتلون ڪ numberي موٽايو جيڪي اسان پروسيس دوران پيئيون.

اسان کي بهتر ڪري سگھون ٿا پيچيدگي حل جو ڪجھ مشاهدو ڪرڻ سان:

  1. اسان وٽ نيم بوٽل نمبر پوري پاڻي جي بوتلون آھن ان ڪري اھو گھٽ گھٽ تعداد ۾ گھٽ پاڻي جون بوتلون جيڪي اسين پيئنداسين.
  2. 1 مڪمل پاڻي جي بوتل = 1 يونٽ پاڻي + 1 خالي پاڻي جي بوتل.
  3. خالي پاڻيءَ جي بوتلن مان مٽ مان ، اسان کي 1 مڪمل پاڻي جي بوتل ملي ٿي (1 يونٽ پاڻي + 1 خالي پاڻي جي بوتل). اها شي به تعبير ڪري سگهجي ٿي (نون ايڪسچينج -1) پاڻي جون بوتلون 1 يونٽ پاڻي ڏيو.
  4. پر جيڪڏهن آخري چڪر ۾ جيڪڏهن اسان وٽ (نمبر ايڪسچينج -1) خالي بوتلون آهن ته پوءِ اسان پاڻي جي هڪ يونٽ نٿا حاصل ڪري سگهون.
  5. تنھنڪري اسان جو نتيجو numBottle + (numBottle / (numExchange -1)) ۽ جيڪڏھن numBottle٪ (numExchange -1) == 0 ته پوءِ حتمي جواب مان 1 کي گھٽايو.

تي عملدرآمد

پاڻي جي بوتلن لاءِ سي ++ ڪوڊ

#include <bits/stdc++.h> 
using namespace std; 
    int numWaterBottles(int numBottles, int numExchange) {
        int ans= numBottles + (numBottles) / (numExchange - 1);
        if((numBottles) %(numExchange - 1)==0)
            ans--;
        return ans;
    }
int main() 
{ 
 int numBottles = 15, numExchange = 4;
 int ans=numWaterBottles(numBottles,numExchange);
 cout<<ans<<endl;
 return 0;
}
19

جاوا ڪوڊ واٽر بوتلن لاءِ

import java.util.Arrays;
import java.util.Set ;
import java.util.HashSet;
public class Tutorialcup {
    public static int numWaterBottles(int numBottles, int numExchange) {
        int ans= numBottles + (numBottles) / (numExchange - 1);
        if((numBottles) %(numExchange - 1)==0)
            ans--;
        return ans;
    }
  public static void main(String[] args) {
     int numBottles = 15, numExchange = 4;
     int ans=numWaterBottles(numBottles,numExchange); 
        System.out.println(ans);
  }
}
19

پاڻي جي بوتلن Leetcode حل جي پيچيدگي

وقت جي پيچيدگي

مٿي ڏنل ڪوڊ جي پيچيدگي آهي اي (1).

خلائي پيچيدگي

مٿي ڏنل ڪوڊ جي خلائي پيچيدگي آهي اي (1) ڇاڪاڻ ته اسان جواب کي اسٽور ڪرڻ لاءِ صرف متغير استعمال ڪري رهيا آهيون.

حوالا