Skip to content

Commit a5ccc9a

Browse files
committed
8 problems solved.
1 parent 0078ac6 commit a5ccc9a

File tree

8 files changed

+195
-0
lines changed

8 files changed

+195
-0
lines changed

src/1013.cpp

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
bool canThreePartsEqualSum(vector<int>& A) {
2+
int len = A.size();
3+
int sum = 0;
4+
for (int i = 0; i < len; ++i)
5+
{
6+
sum += A[i];
7+
}
8+
if (sum%3 != 0)
9+
return false;
10+
11+
int i = 0;
12+
int subsum = 0;
13+
while (i <len-2)
14+
{
15+
subsum += A[i];
16+
if (subsum == sum/3)
17+
break;
18+
++i;
19+
}
20+
21+
if (i == len-2)
22+
return false;
23+
++i;
24+
25+
subsum = 0;
26+
while (i < len-1)
27+
{
28+
subsum += A[i];
29+
if (subsum == sum/3)
30+
break;
31+
++i;
32+
}
33+
34+
return i < len-1;
35+
}

src/1476.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
class SubrectangleQueries {
2+
public:
3+
SubrectangleQueries(vector<vector<int>>& rectangle) {
4+
data.assign(rectangle.begin(), rectangle.end());
5+
row = rectangle.size();
6+
col = rectangle[0].size();
7+
}
8+
9+
void updateSubrectangle(int row1, int col1, int row2, int col2, int newValue) {
10+
for (int i = row1; i <= row2; ++i)
11+
{
12+
fill(data[i].begin()+col1, data[i].begin()+col2+1, newValue);
13+
}
14+
}
15+
16+
int getValue(int row, int col) {
17+
return data[row][col];
18+
}
19+
20+
private:
21+
vector<vector<int>> data;
22+
int row;
23+
int col;
24+
};

src/1539.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
int findKthPositive(vector<int>& arr, int k) {
2+
int flag[2000] = {0};
3+
int len = arr.size();
4+
for (int i = 0; i < len; ++i)
5+
flag[arr[i]-1] = 1;
6+
7+
int ct = 0;
8+
for (int i = 0; i < 2000; ++i)
9+
{
10+
if (flag[i] == 0)
11+
{
12+
++ct;
13+
if (ct == k)
14+
{
15+
ct = i+1;
16+
break;
17+
}
18+
}
19+
}
20+
21+
return ct;
22+
}

src/1582.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
int numSpecial(vector<vector<int>>& mat) {
2+
int row = mat.size();
3+
int col = mat[0].size();
4+
map<int, int> rowmp, colmp;
5+
for (int i = 0; i < row; ++i)
6+
{
7+
for (int j = 0; j < col; ++j)
8+
{
9+
if (mat[i][j] == 1)
10+
{
11+
rowmp[i]++;
12+
colmp[j]++;
13+
}
14+
}
15+
}
16+
17+
int ct = 0;
18+
for (int i = 0; i < row; ++i)
19+
{
20+
for (int j = 0; j < col; ++j)
21+
{
22+
if (mat[i][j] == 1 && rowmp[i] == 1 && colmp[j] == 1)
23+
++ct;
24+
}
25+
}
26+
27+
return ct;
28+
}

src/1700.cpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
int countStudents(vector<int>& students, vector<int>& sandwiches) {
2+
deque<int> stu(students.begin(), students.end());
3+
4+
int len = sandwiches.size();
5+
int remain = len;
6+
int i = 0, j = 0;
7+
while (i < len)
8+
{
9+
for (j = 0; j < remain; ++j)
10+
if (sandwiches[i] == stu[j])
11+
break;
12+
if (j == remain)
13+
break;
14+
stu.insert(stu.end(), stu.begin(), stu.begin()+j);
15+
stu.erase(stu.begin(), stu.begin()+j+1);
16+
++i;
17+
--remain;
18+
}
19+
20+
return remain;
21+
}

src/1769.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
vector<int> minOperations(string boxes) {
2+
int len = boxes.size();
3+
vector<int> res(len, 0);
4+
5+
for (int i = 0; i < len; ++i)
6+
{
7+
int ct = 0;
8+
for (int j = 0; j < len; ++j)
9+
{
10+
if (boxes[j] == '1')
11+
ct += abs(j-i);
12+
}
13+
res[i] = ct;
14+
}
15+
16+
return res;
17+
}

src/1779.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
int nearestValidPoint(int x, int y, vector<vector<int>>& points) {
2+
int len = points.size();
3+
int minv = numeric_limits<int>::max();
4+
int pos = -1;
5+
6+
for (int i = 0; i < len; ++i)
7+
{
8+
if (points[i][0] == x || points[i][1] == y)
9+
{
10+
int dist = abs(x-points[i][0]) + abs(y-points[i][1]);
11+
if (dist == 0)
12+
return i;
13+
else if (dist < minv)
14+
{
15+
minv = dist;
16+
pos = i;
17+
}
18+
}
19+
}
20+
21+
return pos;
22+
}

src/1790.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
bool areAlmostEqual(string s1, string s2) {
2+
if (s1 == s2)
3+
return true;
4+
int len = s1.size();
5+
int ct = 0;
6+
char arr[4];
7+
for (int i = 0; i < len; ++i)
8+
{
9+
if (s1[i] != s2[i])
10+
{
11+
if (ct == 2)
12+
return false;
13+
arr[ct*2] = s1[i];
14+
arr[ct*2+1] = s2[i];
15+
++ct;
16+
}
17+
}
18+
19+
if (ct == 1)
20+
return false;
21+
22+
if (arr[0] == arr[3] && arr[1] == arr[2])
23+
return true;
24+
else
25+
return false;
26+
}

0 commit comments

Comments
 (0)