Skip to content

Commit b625037

Browse files
committed
7 problems solved.
1 parent 5417562 commit b625037

File tree

7 files changed

+184
-0
lines changed

7 files changed

+184
-0
lines changed

src/1984.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
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+
}

src/1995.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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+
}

src/2016.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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+
}

src/2022.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
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+
}

src/2032.cpp

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
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+
}

src/2042.cpp

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
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+
}

src/2047.cpp

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
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+
}

0 commit comments

Comments
 (0)