File tree Expand file tree Collapse file tree 7 files changed +184
-0
lines changed Expand file tree Collapse file tree 7 files changed +184
-0
lines changed Original file line number Diff line number Diff line change
1
+ int minimumDifference (vector<int >& nums, int k) {
2
+ if (k == 1 )
3
+ return 0 ;
4
+ sort (nums.begin (), nums.end ());
5
+ int len = nums.size ();
6
+ int mindiff = 1e5 ;
7
+
8
+ for (int i = len-1 ; i >= k-1 ; --i)
9
+ {
10
+ int diff = nums[i]-nums[i-k+1 ];
11
+ if (diff < mindiff)
12
+ mindiff = diff;
13
+ }
14
+
15
+ return mindiff;
16
+ }
Original file line number Diff line number Diff line change
1
+ int countQuadruplets (vector<int >& nums) {
2
+ int len = nums.size ();
3
+ int ct = 0 ;
4
+
5
+ for (int i = 0 ; i < len-3 ; ++i)
6
+ {
7
+ for (int j = i+1 ; j < len-2 ; ++j)
8
+ {
9
+ for (int m = j+1 ; m < len-1 ; ++m)
10
+ {
11
+ for (int n = m+1 ; n < len; ++n)
12
+ if (nums[i]+nums[j]+nums[m] == nums[n])
13
+ ++ct;
14
+ }
15
+ }
16
+ }
17
+
18
+ return ct;
19
+ }
Original file line number Diff line number Diff line change
1
+ int maximumDifference (vector<int >& nums) {
2
+ int len = nums.size ();
3
+ int maxdiff = 0 ;
4
+ for (int i = 0 ; i < len-1 ; ++i)
5
+ {
6
+ for (int j = i+1 ; j < len; ++j)
7
+ {
8
+ int diff = nums[j]-nums[i];
9
+ if (diff > maxdiff)
10
+ maxdiff = diff;
11
+ }
12
+ }
13
+
14
+ if (maxdiff == 0 )
15
+ maxdiff = -1 ;
16
+
17
+ return maxdiff;
18
+ }
Original file line number Diff line number Diff line change
1
+ vector<vector<int >> construct2DArray (vector<int >& original, int m, int n) {
2
+ int len = original.size ();
3
+ if (m*n != len)
4
+ return {};
5
+
6
+ vector<vector<int >> res (m, vector<int >(n, 0 ));
7
+ for (int i = 0 ; i < m; ++i)
8
+ {
9
+ for (int j = 0 ; j < n; ++j)
10
+ {
11
+ res[i][j] = original[i*n + j];
12
+ }
13
+ }
14
+
15
+ return res;
16
+ }
Original file line number Diff line number Diff line change
1
+ vector<int > twoOutOfThree (vector<int >& nums1, vector<int >& nums2, vector<int >& nums3) {
2
+ int arr[101 ][3 ];
3
+ memset (arr, 0 , 303 *sizeof (int ));
4
+ int len1 = nums1.size ();
5
+ int len2 = nums2.size ();
6
+ int len3 = nums3.size ();
7
+ for (int i = 0 ; i < 100 ; ++i)
8
+ {
9
+ if (i < len1)
10
+ {
11
+ if (arr[nums1[i]][0 ] == 0 )
12
+ ++arr[nums1[i]][0 ];
13
+ }
14
+ if (i < len2)
15
+ {
16
+ if (arr[nums2[i]][1 ] == 0 )
17
+ ++arr[nums2[i]][1 ];
18
+ }
19
+ if (i < len3)
20
+ {
21
+ if (arr[nums3[i]][2 ] == 0 )
22
+ ++arr[nums3[i]][2 ];
23
+ }
24
+ }
25
+
26
+ vector<int > res;
27
+ for (int i = 0 ; i < 101 ; ++i)
28
+ {
29
+ if (arr[i][0 ] + arr[i][1 ] + arr[i][2 ] >= 2 )
30
+ res.push_back (i);
31
+ }
32
+
33
+ return res;
34
+ }
Original file line number Diff line number Diff line change
1
+ bool areNumbersAscending (string s) {
2
+ int len = s.size ();
3
+ int index = 0 ;
4
+ int pos = s.find (' ' , index);
5
+ int lastnum = 0 ;
6
+ while (pos != string::npos)
7
+ {
8
+ if (isdigit (s[index]))
9
+ {
10
+ int sum = 0 ;
11
+ for (int i = index; i < pos; ++i)
12
+ sum = 10 *sum + (s[i]-' 0' );
13
+ if (sum <= lastnum)
14
+ return false ;
15
+ else
16
+ lastnum = sum;
17
+ }
18
+ index = pos+1 ;
19
+ pos = s.find (' ' , index);
20
+ }
21
+
22
+ if (isdigit (s[index]))
23
+ {
24
+ int sum = 0 ;
25
+ for (int i = index; i < len; ++i)
26
+ sum = 10 *sum + (s[i]-' 0' );
27
+ if (sum <= lastnum)
28
+ return false ;
29
+ }
30
+
31
+ return true ;
32
+ }
Original file line number Diff line number Diff line change
1
+ int countValidWords (string sentence) {
2
+ auto first = sentence.begin ();
3
+ auto last = sentence.end ();
4
+ auto p = first, q = first;
5
+ auto func = [](char c){
6
+ return c == ' ' ;
7
+ };
8
+
9
+ int ct = 0 ;
10
+ p = find_if_not (p, last, func);
11
+ q = find_if (p, last, func);
12
+ while (p != last && q != last)
13
+ {
14
+ if (isValid (sentence, p, q))
15
+ ++ct;
16
+ p = find_if_not (q, last, func);
17
+ if (p != last)
18
+ q = find_if (p, last, func);
19
+ }
20
+
21
+ if (p != last && isValid (sentence, p, q))
22
+ ++ct;
23
+
24
+ return ct;
25
+ }
26
+
27
+ bool isValid (const string& sentence, string::iterator& p, string::iterator& q)
28
+ {
29
+ int hyphennum = 0 ;
30
+ for (auto iter = p; iter != q; ++iter)
31
+ {
32
+ if (isdigit (*iter))
33
+ return false ;
34
+ if (*iter == ' -' )
35
+ {
36
+ ++hyphennum;
37
+ if (hyphennum > 1 )
38
+ return false ;
39
+ if (iter == p || iter == q-1 )
40
+ return false ;
41
+ if (!isalpha (*(iter-1 )) || !(isalpha (*(iter+1 ))))
42
+ return false ;
43
+ }
44
+ if ((*iter == ' ,' || *iter == ' .' || *iter == ' !' ) && (iter != q-1 ))
45
+ return false ;
46
+ }
47
+
48
+ return true ;
49
+ }
You can’t perform that action at this time.
0 commit comments