File tree Expand file tree Collapse file tree 6 files changed +186
-0
lines changed Expand file tree Collapse file tree 6 files changed +186
-0
lines changed Original file line number Diff line number Diff line change
1
+ int countDistinctIntegers (vector<int >& nums) {
2
+ set<int > st;
3
+ int len = nums.size ();
4
+ for (int i = 0 ; i < len; ++i)
5
+ {
6
+ st.insert (nums[i]);
7
+ int val = 0 ;
8
+ int tmp = nums[i];
9
+ while (tmp != 0 )
10
+ {
11
+ val = val*10 + tmp%10 ;
12
+ tmp /= 10 ;
13
+ }
14
+ st.insert (val);
15
+ }
16
+
17
+ return st.size ();
18
+ }
Original file line number Diff line number Diff line change
1
+ bool isCircularSentence (string sentence) {
2
+ int len = sentence.size ();
3
+ char first = sentence[0 ], last = sentence[0 ];
4
+ int i = 1 ;
5
+
6
+ while (i < len)
7
+ {
8
+ if (sentence[i] == ' ' )
9
+ {
10
+ last = sentence[i-1 ];
11
+ if (sentence[i+1 ] != last)
12
+ return false ;
13
+ else
14
+ ++i;
15
+ }
16
+ else
17
+ ++i;
18
+ }
19
+
20
+ return sentence[i-1 ] == first;
21
+ }
Original file line number Diff line number Diff line change
1
+ long long dividePlayers (vector<int >& skill) {
2
+ int len = skill.size ();
3
+ sort (skill.begin (), skill.end ());
4
+
5
+ int n = len/2 ;
6
+ int v = skill[0 ] + skill[len-1 ];
7
+ long long sum = skill[0 ] * skill[len-1 ];
8
+ for (int i = 1 ; i < n; ++i)
9
+ {
10
+ if (skill[i] + skill[len-1 -i] != v)
11
+ return -1 ;
12
+ else
13
+ sum += skill[i] * skill[len-1 -i];
14
+ }
15
+
16
+ return sum;
17
+ }
Original file line number Diff line number Diff line change
1
+ int maximumValue (vector<string>& strs) {
2
+ int len = strs.size ();
3
+ int maxval = 0 ;
4
+ for (int i = 0 ; i < len; ++i)
5
+ {
6
+ int n = strs[i].size ();
7
+ bool flag = false ;
8
+ int j = 0 ;
9
+ int val = 0 ;
10
+ while (j < n)
11
+ {
12
+ if (isdigit (strs[i][j]))
13
+ val = val*10 + (strs[i][j]-' 0' );
14
+ else
15
+ {
16
+ flag = true ;
17
+ break ;
18
+ }
19
+ ++j;
20
+ }
21
+
22
+ if (flag)
23
+ {
24
+ if (n > maxval)
25
+ maxval = n;
26
+ }
27
+ else
28
+ {
29
+ if (val > maxval)
30
+ maxval = val;
31
+ }
32
+ cout << val << endl;
33
+ }
34
+
35
+ return maxval;
36
+ }
Original file line number Diff line number Diff line change
1
+ int deleteGreatestValue (vector<vector<int >>& grid) {
2
+ int m = grid.size ();
3
+ int n = grid[0 ].size ();
4
+
5
+ for (int i = 0 ; i < m; ++i)
6
+ sort (grid[i].begin (), grid[i].end ());
7
+
8
+ int sum = 0 ;
9
+ for (int i = n-1 ; i >= 0 ; --i)
10
+ {
11
+ int maxval = 0 ;
12
+ for (int j = 0 ; j < m; ++j)
13
+ {
14
+ if (grid[j][i] > maxval)
15
+ maxval = grid[j][i];
16
+ }
17
+
18
+ sum += maxval;
19
+ }
20
+
21
+ return sum;
22
+ }
Original file line number Diff line number Diff line change
1
+ int uniquePathsWithObstacles (vector<vector<int >>& obstacleGrid) {
2
+ int row = obstacleGrid.size ();
3
+ int col = obstacleGrid[0 ].size ();
4
+
5
+ if (row == 1 && col == 1 )
6
+ {
7
+ return obstacleGrid[0 ][0 ] == 0 ? 1 : 0 ;
8
+ }
9
+
10
+ vector<vector<int >> dp (row, vector<int >(col, 0 ));
11
+ int r = 0 , c = 0 ;
12
+ while (r < row)
13
+ {
14
+ if (obstacleGrid[r][0 ] == 0 )
15
+ {
16
+ dp[r][0 ] = 1 ;
17
+ ++r;
18
+ }
19
+ else
20
+ {
21
+ while (r < row)
22
+ {
23
+ dp[r][0 ] = -1 ;
24
+ ++r;
25
+ }
26
+ }
27
+ }
28
+
29
+ while (c < col)
30
+ {
31
+ if (obstacleGrid[0 ][c] == 0 )
32
+ {
33
+ dp[0 ][c] = 1 ;
34
+ ++c;
35
+ }
36
+ else
37
+ {
38
+ while (c < col)
39
+ {
40
+ dp[0 ][c] = -1 ;
41
+ ++c;
42
+ }
43
+ }
44
+ }
45
+
46
+ r = 1 ;
47
+ while (r < row)
48
+ {
49
+ c = 1 ;
50
+ while (c < col)
51
+ {
52
+ if (obstacleGrid[r][c] == 0 )
53
+ {
54
+ if (dp[r-1 ][c] == -1 && dp[r][c-1 ] == -1 )
55
+ dp[r][c] = -1 ;
56
+ else
57
+ {
58
+ if (dp[r-1 ][c] != -1 )
59
+ dp[r][c] += dp[r-1 ][c];
60
+ if (dp[r][c-1 ] != -1 )
61
+ dp[r][c] += dp[r][c-1 ];
62
+ }
63
+ }
64
+ else
65
+ dp[r][c] = -1 ;
66
+ ++c;
67
+ }
68
+ ++r;
69
+ }
70
+
71
+ return dp[row-1 ][col-1 ] > 0 ? dp[row-1 ][col-1 ] : 0 ;
72
+ }
You can’t perform that action at this time.
0 commit comments