ನೀರಿನ ಬಾಟಲಿಗಳು ಲೀಟ್‌ಕೋಡ್ ಪರಿಹಾರ


ತೊಂದರೆ ಮಟ್ಟ ಸುಲಭ
ಆಗಾಗ್ಗೆ ಕೇಳಲಾಗುತ್ತದೆ ಮೈಕ್ರೋಸಾಫ್ಟ್
ದುರಾಸೆ

ಸಮಸ್ಯೆ ಹೇಳಿಕೆ

”ವಾಟರ್ ಬಾಟಲಿಗಳು” ಸಮಸ್ಯೆಯಲ್ಲಿ ನಮಗೆ ಎರಡು ಮೌಲ್ಯಗಳನ್ನು ನೀಡಲಾಗಿದೆ, ಅವುಗಳೆಂದರೆ “ನಂಬೊಬಾಟಲ್” ಇದು ಒಟ್ಟು ಪೂರ್ಣ ನೀರಿನ ಬಾಟಲಿಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ ಮತ್ತು “ನಂಬ್ ಎಕ್ಸ್ಚೇಂಜ್” ಇದು ಒಂದು ಸಮಯದಲ್ಲಿ ನಾವು ವಿನಿಮಯ ಮಾಡಿಕೊಳ್ಳಬಹುದಾದ ಮತ್ತು ಪೂರ್ಣವಾಗಿ ಪಡೆಯಬಹುದಾದ ಒಟ್ಟು ಖಾಲಿ ನೀರಿನ ಬಾಟಲಿಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ. ನೀರಿನ ಶೀಶೆ.

ಪೂರ್ಣ ನೀರಿನ ಬಾಟಲಿಯಿಂದ ನೀರು ಕುಡಿದ ನಂತರ ಅದು ಖಾಲಿ ನೀರಿನ ಬಾಟಲಿಯಾಗಿ ಬದಲಾಗುತ್ತದೆ. ನಾವು ಕುಡಿಯಬಹುದಾದ ಗರಿಷ್ಠ ಸಂಖ್ಯೆಯ ಪೂರ್ಣ ನೀರಿನ ಬಾಟಲಿಗಳನ್ನು ಕಂಡುಹಿಡಿಯುವುದು ನಮ್ಮ ಕಾರ್ಯ.

ಉದಾಹರಣೆ

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. ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ನಾವು ಕುಡಿದ ಒಟ್ಟು ನೀರಿನ ಬಾಟಲಿಗಳ ಸಂಖ್ಯೆಯನ್ನು ಹಿಂತಿರುಗಿ.

ನಾವು ಸುಧಾರಿಸಬಹುದು ಸಂಕೀರ್ಣತೆ ಕೆಲವು ಅವಲೋಕನಗಳನ್ನು ಮಾಡುವ ಮೂಲಕ ಪರಿಹಾರದ:

  1. ನಾವು ಪೂರ್ಣ ನೀರಿನ ಬಾಟಲಿಗಳ ನಂಬರ್‌ಬಾಟಲ್ ಸಂಖ್ಯೆಯನ್ನು ಹೊಂದಿದ್ದೇವೆ ಆದ್ದರಿಂದ ಇದು ನಾವು ಕುಡಿಯಬಹುದಾದ ಪೂರ್ಣ ಸಂಖ್ಯೆಯ ಪೂರ್ಣ ನೀರಿನ ಬಾಟಲಿಗಳಾಗಿರುತ್ತದೆ.
  2. 1 ಪೂರ್ಣ ನೀರಿನ ಬಾಟಲ್ = 1 ಯುನಿಟ್ ನೀರು + 1 ಖಾಲಿ ನೀರಿನ ಬಾಟಲ್.
  3. NumExchange ಖಾಲಿ ನೀರಿನ ಬಾಟಲಿಗಳಿಂದ, ನಾವು 1 ಪೂರ್ಣ ನೀರಿನ ಬಾಟಲಿಯನ್ನು ಪಡೆಯುತ್ತೇವೆ (1 ಯುನಿಟ್ ನೀರು + 1 ಖಾಲಿ ನೀರಿನ ಬಾಟಲ್). ಈ ವಿಷಯವನ್ನು (numExchange-1) ನೀರಿನ ಬಾಟಲಿಗಳು 1 ಯುನಿಟ್ ನೀರನ್ನು ನೀಡುತ್ತದೆ ಎಂದು ಸಹ ವ್ಯಾಖ್ಯಾನಿಸಬಹುದು.
  4. ಆದರೆ ಕೊನೆಯ ಸುತ್ತಿನಲ್ಲಿ ನಾವು (numExchange-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

ನೀರಿನ ಬಾಟಲಿಗಳ ಸಂಕೀರ್ಣ ವಿಶ್ಲೇಷಣೆ ಲೀಟ್‌ಕೋಡ್ ಪರಿಹಾರ

ಸಮಯದ ಸಂಕೀರ್ಣತೆ

ಮೇಲಿನ ಕೋಡ್‌ನ ಸಮಯದ ಸಂಕೀರ್ಣತೆಯಾಗಿದೆ ಒ (1).

ಬಾಹ್ಯಾಕಾಶ ಸಂಕೀರ್ಣತೆ

ಮೇಲಿನ ಕೋಡ್‌ನ ಸ್ಥಳ ಸಂಕೀರ್ಣತೆಯಾಗಿದೆ ಒ (1) ಏಕೆಂದರೆ ನಾವು ಉತ್ತರವನ್ನು ಸಂಗ್ರಹಿಸಲು ವೇರಿಯೇಬಲ್ ಅನ್ನು ಮಾತ್ರ ಬಳಸುತ್ತಿದ್ದೇವೆ.

ಉಲ್ಲೇಖಗಳು