2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
नमस्कारः सर्वेभ्यः, अस्य ब्लोगस्य उद्देश्यं ग्रीष्मकालीनावकाशस्य समये अध्ययनस्य चेक-इनस्य अभिलेखनं भवति यत् पश्चात् स्तम्भरूपेण आयोजितं भविष्यति मुख्यः अभिप्रायः ग्रीष्मकालीनावकाशस्य समये आँकडासंरचनानां अध्ययनं सम्पन्नं करिष्यामि post some related blogs about data structure implementation and some quizs for personal study अहम् अपि आशासे यत् भवान् मम बहु समर्थनं कर्तुं शक्नोति।
केवलं स्तम्भस्य अनुकरणार्थं सरणीं उपयुज्यताम्, परन्तु अत्र अहं कष्टं रक्षितुं प्रयतमानोऽस्मि तथा च चालनवेगः अतीव उच्चः नास्ति, अनुकूलनार्थं च बहु स्थानं वर्तते
- class MinStack {
-
- int[] el;
- int numsize;
-
- public MinStack() {
- el = new int[10000];
- int numsize = 0;
- }
-
- // private void grow(){
- // this.el=Arrays.copyof(el,2*el.lenth);
- // }
-
- public void push(int val) {
- // if (el.lenth == numsize) {
- // grow();
- // }
- el[numsize] = val;
- numsize++;
- }
-
- public int pop() {
- if (empty())
- return -1;
- return el[--numsize];
- }
-
- public int top() {
- return el[numsize - 1];
-
- }
-
- private boolean empty() {
- return numsize == 0;
- }
-
- public int getMin() {
- int num = el[0];
- for (int i = 0; i < numsize; i++) {
- if (el[i] < num)
- num = el[i];
- }
- return num;
- }
- }
-
- /**
- * Your MinStack object will be instantiated and called as such:
- * MinStack obj = new MinStack();
- * obj.push(val);
- * obj.pop();
- * int param_3 = obj.top();
- * int param_4 = obj.getMin();
- */
विश्लेषणम् : पूर्वं वयं ज्ञातस्य अनुक्रमसारणीयाः उपयोगाय वयं एतस्याः समस्यायाः समाधानार्थं अनुक्रमसारणीयाः उपयोगं कुर्मःक्रमसारणीद्वारा अनुकरणं कृतं द्विमात्रिकं सरणी केवलं उपलिपिद्वारा तत्त्वान् प्राप्तुं न शक्नोति ।
-
- class Solution {
- public List<List<Integer>> generate(int numRows) {
- List<List<Integer>> ret=new ArrayList<>();
- List<Integer> list=new ArrayList<>();
- list.add(1);
- ret.add(list);
- for(int i=1;i<numRows;i++){
- List<Integer> row=new ArrayList<>();
- row.add(1);
- List<Integer> a= ret.get(i-1);
- for (int j = 1; j < i; j++) {
- int val1=a.get(j);
- int val2=a.get(j-1);
- row.add(val1+val2);
- }
- row.add(1);
- ret.add(row);
- }
- return ret;
- }
- }
-
नोटः- पोलिश-अभिव्यक्तिः एकः अभिव्यक्तिः अस्ति या सङ्गणकैः अवगन्तुं शक्यते
विचारः - सरणीं भ्रमन्तु, प्रथमं निर्धारयन्तु यत् स्ट्रिंग् संख्या अस्ति वा,यदि संख्या अस्ति तर्हि संख्यायां परिणमयित्वा स्तम्भे धक्कायते अन्यथा द्वौ ऑपरेण्ड् बहिः निष्कासितौ भवतः, "+", "-", "*" अथवा "/" इत्यस्य पश्चात् एकः संचालकः उपयुज्यते ।, यत् स्तम्भे अवशिष्टम् अस्ति तत् अन्तिमम् उत्तरम्
- class Solution {
- public int evalRPN(String[] tokens) {
- Stack<Integer> st = new Stack();
- for (int i = 0; i < tokens.length; i++) {
- String str = tokens[i];
- if (o(str) == false) {
- int val = Integer.parseInt(str);
- st.push(val);
- } else {
- int val1 = st.pop();
- int val2 = st.pop();
- switch (str) {
- case "+":
- st.push(val2+val1);
- break;
- case "-":
- st.push(val2-val1);
- break;
- case "*":
- st.push(val2*val1);
- break;
- case "/":
- st.push(val2/val1);
- break;
- }
-
- }
- }
- return st.peek();
- }
-
-
-
- private boolean o (String s){
- if (s.equals("+") || s.equals("-") || s.equals("*") || s.equals("/")) {
-
- return true;
- }
- return false;
- }
- }
-
तदेव अस्य ब्लोग् कृते, भवद्भ्यः सर्वेभ्यः धन्यवादः