File tree Expand file tree Collapse file tree 5 files changed +128
-0
lines changed Expand file tree Collapse file tree 5 files changed +128
-0
lines changed Original file line number Diff line number Diff line change
1
+ int heightChecker (vector<int >& heights) {
2
+ int len = heights.size ();
3
+ vector<int > ori (heights);
4
+ sort (heights.begin (), heights.end ());
5
+
6
+ int ct = 0 ;
7
+ for (int i = 0 ; i < len; ++i)
8
+ {
9
+ if (ori[i] != heights[i])
10
+ ++ct;
11
+ }
12
+
13
+ return ct;
14
+ }
Original file line number Diff line number Diff line change
1
+ vector<int > rearrangeArray (vector<int >& nums) {
2
+ int len = nums.size ();
3
+ vector<int > res (len, 0 );
4
+ int even = 0 , odd = 1 ;
5
+ for (int i = 0 ; i < len; ++i)
6
+ {
7
+ if (nums[i] > 0 )
8
+ {
9
+ res[even] = nums[i];
10
+ even += 2 ;
11
+ }
12
+ else
13
+ {
14
+ res[odd] = nums[i];
15
+ odd += 2 ;
16
+ }
17
+ }
18
+
19
+ return res;
20
+ }
Original file line number Diff line number Diff line change
1
+ int findClosestNumber (vector<int >& nums) {
2
+ int mindist = 1e5 ;
3
+ int val = -1e5 ;
4
+ int len = nums.size ();
5
+ for (int i = 0 ; i < len; ++i)
6
+ {
7
+ int tmp = abs (nums[i]);
8
+ if (tmp < mindist)
9
+ {
10
+ mindist = tmp;
11
+ val = nums[i];
12
+ }
13
+ else if (tmp == mindist)
14
+ {
15
+ if (nums[i] > val)
16
+ val = nums[i];
17
+ }
18
+ }
19
+
20
+ return val;
21
+ }
Original file line number Diff line number Diff line change
1
+ string digitSum (string s, int k) {
2
+ int len = s.size ();
3
+ while (len > k)
4
+ {
5
+ int n = len/k;
6
+ int j = 0 , sum = 0 , m = 0 ;
7
+ for (int i = 0 ; i < n; ++i)
8
+ {
9
+ sum = 0 ;
10
+ for (j = i*k; j < (i+1 )*k; ++j)
11
+ {
12
+ sum += s[j]-' 0' ;
13
+ }
14
+
15
+ int lim = sum > 0 ? log10 (sum) : 0 ;
16
+ int idx = m+lim;
17
+ int tmp = idx;
18
+ while (lim >= 0 )
19
+ {
20
+ s[idx--] = sum%10 +' 0' ;
21
+ sum /= 10 ;
22
+ --lim;
23
+ }
24
+ m = tmp+1 ;
25
+ }
26
+
27
+ if (j < len)
28
+ {
29
+ sum = 0 ;
30
+ for (int i = j; i < len; ++i)
31
+ {
32
+ sum += s[i]-' 0' ;
33
+ }
34
+ int lim = sum > 0 ? log10 (sum) : 0 ;
35
+ int idx = m+lim;
36
+ int tmp = idx;
37
+ while (lim >= 0 )
38
+ {
39
+ s[idx--] = sum%10 +' 0' ;
40
+ sum /= 10 ;
41
+ --lim;
42
+ }
43
+ m = tmp+1 ;
44
+ len = m;
45
+ }
46
+ else
47
+ len = m;
48
+ }
49
+
50
+ return s.substr (0 ,len);
51
+ }
Original file line number Diff line number Diff line change
1
+ int projectionArea (vector<vector<int >>& grid) {
2
+ int n = grid.size ();
3
+ int area = 0 ;
4
+ for (int i = 0 ; i < n; ++i)
5
+ {
6
+ int maxvalrow = 0 ;
7
+ int maxvalcol = 0 ;
8
+ for (int j = 0 ; j < n; ++j)
9
+ {
10
+ if (grid[i][j] > 0 )
11
+ area++;
12
+ if (grid[i][j] > maxvalrow)
13
+ maxvalrow = grid[i][j];
14
+ if (grid[j][i] > maxvalcol)
15
+ maxvalcol = grid[j][i];
16
+ }
17
+
18
+ area += maxvalrow + maxvalcol;
19
+ }
20
+
21
+ return area;
22
+ }
You can’t perform that action at this time.
0 commit comments