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:48]
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>
-   #​include <​algorithm>​ +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>​ 
 +</​spoiler>​ 
 + 
 +<spoiler Soluția 1 implementată în Java> 
 +<code java> 
 +class Solution { 
 +   ​public int findKthLargest(int[] nums, int k) { 
 +        Arrays.sort(nums);​ 
 +        return nums[nums.length - k]; 
 +   } 
 +}
 </​code>​ </​code>​
 </​spoiler>​ </​spoiler>​
Line 108: 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.1740430137.txt.gz · Last modified: 2025/02/24 22:48 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