File tree Expand file tree Collapse file tree 6 files changed +155
-0
lines changed Expand file tree Collapse file tree 6 files changed +155
-0
lines changed Original file line number Diff line number Diff line change
1
+ class SmallestInfiniteSet {
2
+ public:
3
+ SmallestInfiniteSet () {
4
+ for (int i = 0 ; i < 1001 ; ++i)
5
+ arr[i] = 1 ;
6
+ curSmallest = 1 ;
7
+ }
8
+
9
+ int popSmallest () {
10
+ int rt = curSmallest;
11
+ arr[curSmallest] = 0 ;
12
+ for (int i = rt+1 ; i <= 1000 ; ++i)
13
+ {
14
+ if (arr[i] == 1 )
15
+ {
16
+ curSmallest = i;
17
+ break ;
18
+ }
19
+ }
20
+
21
+ return rt;
22
+ }
23
+
24
+ void addBack (int num) {
25
+ if (num <= 1000 && arr[num] == 0 )
26
+ {
27
+ arr[num] = 1 ;
28
+ if (num < curSmallest)
29
+ curSmallest = num;
30
+ }
31
+ }
32
+ private:
33
+ int arr[1001 ];
34
+ int curSmallest;
35
+ };
Original file line number Diff line number Diff line change
1
+ vector<vector<int >> largestLocal (vector<vector<int >>& grid) {
2
+ int row = grid.size ();
3
+ int n = row-2 ;
4
+ vector<vector<int >> res (n, vector<int >(n, 0 ));
5
+
6
+ for (int i = 1 ; i < row-1 ; ++i)
7
+ {
8
+ for (int j = 1 ; j < row-1 ; ++j)
9
+ {
10
+ int maxvalue = 0 ;
11
+ for (int p = i-1 ; p <= i+1 ; ++p)
12
+ {
13
+ for (int q = j-1 ; q <= j+1 ; ++q)
14
+ {
15
+ if (grid[p][q] > maxvalue)
16
+ maxvalue = grid[p][q];
17
+ }
18
+ }
19
+ res[i-1 ][j-1 ] = maxvalue;
20
+ }
21
+ }
22
+
23
+ return res;
24
+ }
Original file line number Diff line number Diff line change
1
+ string removeStars (string s) {
2
+ int len = s.size ();
3
+ string res (len, ' ' );
4
+
5
+ int i = 0 , j = 0 ;
6
+ while (i < len)
7
+ {
8
+ if (s[i] != ' *' )
9
+ {
10
+ res[j++] = s[i];
11
+ }
12
+ else
13
+ {
14
+ if (j > 0 )
15
+ {
16
+ --j;
17
+ }
18
+ }
19
+
20
+ ++i;
21
+ }
22
+
23
+ res.resize (j);
24
+
25
+ return res;
26
+ }
Original file line number Diff line number Diff line change
1
+ bool checkDistances (string s, vector<int >& distance) {
2
+ int len = s.size ();
3
+ vector<int > indexarr (26 , -1 );
4
+ for (int i = 0 ; i < len; ++i)
5
+ {
6
+ if (indexarr[s[i]-' a' ] == -1 )
7
+ {
8
+ indexarr[s[i]-' a' ] = i;
9
+ }
10
+ else
11
+ {
12
+ if ((abs (indexarr[s[i]-' a' ]-i)-1 ) != distance[s[i]-' a' ])
13
+ return false ;
14
+ }
15
+ }
16
+
17
+ return true ;
18
+ }
Original file line number Diff line number Diff line change
1
+ int mostFrequentEven (vector<int >& nums) {
2
+ int len = nums.size ();
3
+ map<int , int > mp;
4
+
5
+ for (int i = 0 ; i < len; ++i)
6
+ {
7
+ if (nums[i]%2 == 0 )
8
+ mp[nums[i]]++;
9
+ }
10
+
11
+ int maxnum = 0 , val = 0 ;
12
+ for (auto iter = mp.begin (); iter != mp.end (); ++iter)
13
+ {
14
+ if (iter->second > maxnum)
15
+ {
16
+ maxnum = iter->second ;
17
+ val = iter->first ;
18
+ }
19
+ else if (iter->second == maxnum && iter->first < val)
20
+ {
21
+ val = iter->first ;
22
+ }
23
+ }
24
+
25
+ if (maxnum == 0 )
26
+ return -1 ;
27
+ else
28
+ return val;
29
+ }
Original file line number Diff line number Diff line change
1
+ int partitionString (string s) {
2
+ int len = s.size ();
3
+ int i = 0 ;
4
+ int ct = 0 ;
5
+
6
+ while (i < len)
7
+ {
8
+ vector<int > flag (26 , 0 );
9
+ ++ct;
10
+ while (i < len)
11
+ {
12
+ if (flag[s[i]-' a' ] == 0 )
13
+ {
14
+ flag[s[i]-' a' ] = 1 ;
15
+ ++i;
16
+ }
17
+ else
18
+ break ;
19
+ }
20
+ }
21
+
22
+ return ct;
23
+ }
You can’t perform that action at this time.
0 commit comments