Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pa:laboratoare:laborator-00 [2025/02/24 22:52]
radu.nichita
pa:laboratoare:laborator-00 [2025/03/06 22:57] (current)
darius.neatu [Exercitii]
Line 69: Line 69:
 Task-uri: Task-uri:
  
-* **Task00**: Citiți README de pe pagina principala [[https://​github.com/​acs-pa/​pa-lab | pa-lab]]. Alegeți un limbaj de programare dintre C++ și Java și parcurgeți tutorialul aferent din [[https://​github.com/​acs-pa/​pa-lab/​tree/​main/​skel/​lab00 | pa-lab::​skel/​lab00]].+  ​* **Task00**: Citiți README de pe pagina principala [[https://​github.com/​acs-pa/​pa-lab | pa-lab]]. Alegeți un limbaj de programare dintre C++ și Java și parcurgeți tutorialul aferent din [[https://​github.com/​acs-pa/​pa-lab/​tree/​main/​skel/​lab00 | pa-lab::​skel/​lab00]].
  
 +  * **Task01**: Se dă un vector cu n elemente și un număr k. Aflați al k-lea cel mai mare număr din vector. ​
 +       * **Restricții**: ​
 +         * $ 1 <= k <= n <= 10^5 $
 +         * Elementele vectorului au valori cuprinse între 0 și $ 10 ^ 9 $
 +<​note>​
 Ca să înțelegem cum ne dorim să procedăm la PA, următoarea problemă este rezolvată. Soluțiile pentru această problemă se pot încărca pe platforma [[https://​leetcode.com/​problems/​kth-largest-element-in-an-array/​description/​ | Leetcode]]. Ca să înțelegem cum ne dorim să procedăm la PA, următoarea problemă este rezolvată. Soluțiile pentru această problemă se pot încărca pe platforma [[https://​leetcode.com/​problems/​kth-largest-element-in-an-array/​description/​ | Leetcode]].
- +</note>
-* **Task01**: Se dă un vector cu n elemente și un număr k. Aflați al k-lea cel mai mare număr din vector.  +
-   * **Restricții**:​  +
-     * $ 1 <= k <= n <= 10^5 $ +
-     * elementele vectorului au valori cuprinse între 0 și $ 10 ^ 9 $+
  
 <spoiler Soluția 1>  <spoiler Soluția 1> 
Line 84: Line 85:
 <spoiler Soluția 1 implementată în C++> ​ <spoiler Soluția 1 implementată în C++> ​
 <code cpp> <code cpp>
-   class Solution { +class Solution { 
-    public: + ​public:​ 
-       ​int findKthLargest(vector<​int>&​ nums, int k) { +   ​int findKthLargest(vector<​int>&​ nums, int k) { 
-           ​std::​sort(nums.begin(),​ nums.end());​ +       ​std::​sort(nums.begin(),​ nums.end());​ 
-           ​return nums[nums.size() - k]; +       ​return nums[nums.size() - k]; 
-       ​+   ​
-   ​};+};
 </​code>​ </​code>​
 </​spoiler>​ </​spoiler>​
Line 96: Line 97:
 <spoiler Soluția 1 implementată în Java> <spoiler Soluția 1 implementată în Java>
 <code java> <code java>
-    ​class Solution { +class Solution { 
-        public int findKthLargest(int[] nums, int k) { +   ​public int findKthLargest(int[] nums, int k) { 
-            Arrays.sort(nums);​ +        Arrays.sort(nums);​ 
-            return nums[nums.length - k]; +        return nums[nums.length - k]; 
-        +   ​
-    }+}
 </​code>​ </​code>​
 </​spoiler>​ </​spoiler>​
Line 118: Line 119:
 2. Pentru fiecare din elementele următoarele,​ dacă acesta este mai mare decât minimul din heap, se șterge minimul și se adaugă elementul curent. Mereu în heap avem k elemente la final de pas în această etapă. 2. Pentru fiecare din elementele următoarele,​ dacă acesta este mai mare decât minimul din heap, se șterge minimul și se adaugă elementul curent. Mereu în heap avem k elemente la final de pas în această etapă.
  
-3. Răspunsul este minimul din heap la finalul parcurgerii. Complexitate este de $ O(n log k) $.+3. Răspunsul este minimul din heap la finalul parcurgerii. ​ 
 + 
 +Complexitate este de $ O(n log k) $, care este mai bunăImplementați și testați pe Leetcode!
  
 </​spoiler>​ </​spoiler>​
  
-* **Task02**Rezolvați problema [[https://​leetcode.com/problems/​sliding-window-maximum/​| Sliding Window Maximum]].+<spoiler Soluția 3> 
 +HintSoluția 2 nu este optimă! Se poate ș$O(n)$, dar considerăm că este înafara scopului laboratorului 0. 
 +</spoiler>
  
-* **Task03**: Rezolvați problema [[https://​leetcode.com/​problems/​longest-substring-without-repeating-characters| Longest Substring without repeating characters]].+  ​* **Task02**: Discutați problema [[https://​leetcode.com/​problems/​sliding-window-maximum/​| Sliding Window Maximum]] și problema [[https://​leetcode.com/​problems/​longest-substring-without-repeating-characters| Longest Substring without repeating characters]]. Implementați și testați cel puțin o problemă.
  
-* **Task04**: Rezolvați problema [[https://​leetcode.com/​problems/​min-stack/​description/​| Min Stack]].+  ​* **Task03**: Rezolvați problema [[https://​leetcode.com/​problems/​min-stack/​description/​| Min Stack]].
pa/laboratoare/laborator-00.1740430363.txt.gz · Last modified: 2025/02/24 22:52 by radu.nichita
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0