वर्षाचा दिवस लीटकोड सोल्यूशन


अडचण पातळी सोपे
वारंवार विचारले झेडस्केलेर
गणित

समस्या विधान

“वर्षाचा दिवस” या समस्येमध्ये आम्हाला अ स्ट्रिंग त्यामध्ये YYYY-MM-DD स्वरूपात तारीख आहे. आमचे कार्य म्हणजे त्या तारखेचा दिवस क्रमांक परत करणे.

दिलेली तारीख 2020-01-05 असल्यास. हा 5 जानेवारी 2020 आहे जो 5 वर्षाचा 2020 वा दिवस आहे. तर आपण 5 परत करू.

उदाहरण

date = "2019-01-09"
9

स्पष्टीकरण:

 

दिलेल्या उदाहरणाप्रमाणे दिलेला दिवस 9 जानेवारी 2019 आहे. जो वर्ष 9 चा 2019 वा दिवस आहे. तर उत्तर 9 आहे.

लेटकोड सोल्यूशन ऑफ डे ऑफ द इयरचा दृष्टीकोन

इनपुट स्ट्रिंग स्वरुपात दिलेले असल्यामुळे आपल्याला डेटा, डेटा प्रकारात स्ट्रिंगमधून तारीख, महिना आणि वर्ष काढणे आवश्यक आहे. तर आपण स्ट्रिंग विभाजित करू आणि त्यातून तारीख, महिना आणि वर्ष काढू.

प्रत्येक महिन्याच्या दिवसांची संख्या वेगळी असते. म्हणून प्रत्येक महिन्यासाठी किती दिवस आहेत याचा मागोवा ठेवण्यासाठी आम्ही एक अ‍ॅरे वापरू आणि प्रत्येक महिन्यासाठी दिवसांची संख्या संग्रहित करू.

आता आम्हाला फेब्रुवारी महिन्यातील दिवसांची संख्या हाताळण्याची आवश्यकता आहे कारण लीप वर्षासाठी त्यात 29 दिवस असतात आणि नॉन-लीप वर्षासाठी त्यामध्ये 28 दिवस असतात.

वर्ष हे लीप वर्ष असते:

  1. जर ते 400 ने विभाजित असेल तर
  2. ते 4 ने विभाज्य आहे परंतु 100 ने विभाज्य नाही.

वर्षाचा दिवस लीटकोड सोल्यूशन

वर्षाच्या दिवसाची गणना करण्यासाठी जानेवारीपासून प्रत्येक महिन्यातील सर्व दिवसांची संख्या दिलेल्या महिन्या -1 मध्ये जोडा. दिलेल्या तारखेपासून दिवसांची संख्या जोडा. यामुळे दिलेल्या तारखेला वर्षाचा दिवस मिळेल.

अंमलबजावणी

वर्षाचा दिवसासाठी सी ++ कोड

#include <bits/stdc++.h> 
using namespace std; 
int dayOfYear(string dt) {
  int days[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
  int y = stoi(dt.substr(0, 4)), m = stoi(dt.substr(5, 2)), d = stoi(dt.substr(8));
  if (m > 2 && y % 4 == 0 && (y % 100 != 0|| y % 400 == 0)) ++d; 
  while (--m > 0) d += days[m - 1];
  return d;
}
int main() 
{ 
 string date="2019-01-09";
 int ans=dayOfYear(date);
 cout<<ans<<endl;
 return 0;
}
9

वर्षाच्या दिवसासाठी जावा कोड

import java.util.Arrays;
import java.util.Set ;
import java.util.HashSet;
public class Tutorialcup {
    public static int dayOfYear(String S) {
        int[] days = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        String[] s = S.split("-");
        int y = Integer.parseInt(s[0]);
        int m = Integer.parseInt(s[1]);
        int d = Integer.parseInt(s[2]);
        if (m > 2 && y % 4 == 0 && (y % 100 != 0|| y % 400 == 0)) ++d; 
        while (--m > 0) d += days[m - 1];
        return d;
    } 
  public static void main(String[] args) {
         String date="2019-01-09";
         int ans=dayOfYear(date);
        System.out.println(ans);
  }
}
9

लीटकोड सोल्यूशन ऑफ द इयर ऑफ कॉम्प्लेक्सिटी एनालिसिस

वेळ गुंतागुंत

वरील कोडची वेळ जटिलता आहे ओ (1).

जागेची जटिलता

वरील कोडची स्पेस कॉम्प्लेक्सिटी आहे ओ (1).

संदर्भ