Skip to content

Commit 7f5ef72

Browse files
committed
6 problems solved.
1 parent c02953b commit 7f5ef72

File tree

6 files changed

+176
-0
lines changed

6 files changed

+176
-0
lines changed

src/1266.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
int minTimeToVisitAllPoints(vector<vector<int>>& points) {
2+
int len = points.size();
3+
if (len == 1)
4+
return 0;
5+
int a = points[0][0], b = points[0][1];
6+
int sum = 0;
7+
for (int i = 1; i < len; ++i)
8+
{
9+
int c = points[i][0], d = points[i][1];
10+
if (a == c && b != d)
11+
sum += abs(b-d);
12+
else if (a != c && b == d)
13+
sum += abs(a-c);
14+
else if (a != c && b != d)
15+
{
16+
int mindiff = abs(a-c) < abs(b-d) ? abs(a-c) : abs(b-d);
17+
int delta = abs(abs(a-c)-abs(b-d));
18+
sum += mindiff + delta;
19+
}
20+
a = c;
21+
b = d;
22+
}
23+
24+
return sum;
25+
}

src/1827.cpp

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

src/1833.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
int maxIceCream(vector<int>& costs, int coins) {
2+
int len = costs.size();
3+
sort(costs.begin(), costs.end());
4+
5+
int n = 0;
6+
int i = 0;
7+
while (i < len && coins > 0)
8+
{
9+
if (coins >= costs[i])
10+
{
11+
coins -= costs[i];
12+
++i;
13+
++n;
14+
}
15+
else
16+
break;
17+
}
18+
19+
return n;
20+
}

src/1837.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
int sumBase(int n, int k) {
2+
int sum = 0;
3+
while (n >= k)
4+
{
5+
sum += n%k;
6+
n /= k;
7+
}
8+
9+
return sum+n;
10+
}

src/746.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
int minCostClimbingStairs(vector<int>& cost) {
2+
int len = cost.size();
3+
vector<int> dp(len+1, 0);
4+
5+
dp[0] = 0;
6+
dp[1] = 0;
7+
int i = 2;
8+
while (i <= len)
9+
{
10+
dp[i] = min(dp[i-1]+cost[i-1], dp[i-2]+cost[i-2]);
11+
++i;
12+
}
13+
14+
return dp[len];
15+
}

src/82.cpp

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
ListNode* deleteDuplicates(ListNode* head) {
2+
if (head == nullptr || head->next == nullptr)
3+
return head;
4+
5+
ListNode* node = head;
6+
int refval = head->val;
7+
ListNode* tmp = node->next;
8+
bool flag = false;
9+
while (tmp != nullptr)
10+
{
11+
if (tmp->val == refval)
12+
{
13+
ListNode* p = tmp->next;
14+
delete tmp;
15+
tmp = p;
16+
flag = true;
17+
}
18+
else
19+
{
20+
if (!flag)
21+
{
22+
head = node;
23+
break;
24+
}
25+
else
26+
{
27+
delete node;
28+
node = tmp;
29+
tmp = tmp->next;
30+
refval = node->val;
31+
flag = false;
32+
}
33+
}
34+
}
35+
36+
if (tmp == nullptr)
37+
{
38+
if (flag)
39+
{
40+
delete node;
41+
return nullptr;
42+
}
43+
else
44+
{
45+
head = node;
46+
return head;
47+
}
48+
}
49+
50+
flag = false;
51+
refval = tmp->val;
52+
ListNode* tmp2 = tmp->next;
53+
ListNode* lastnode = node;
54+
while (tmp2 != nullptr)
55+
{
56+
if (tmp2->val == refval)
57+
{
58+
ListNode* p = tmp2->next;
59+
tmp->next = p;
60+
delete tmp2;
61+
tmp2 = p;
62+
flag = true;
63+
}
64+
else
65+
{
66+
if (!flag)
67+
{
68+
refval = tmp2->val;
69+
lastnode = tmp;
70+
tmp = tmp2;
71+
tmp2 = tmp2->next;
72+
}
73+
else
74+
{
75+
lastnode->next = tmp2;
76+
delete tmp;
77+
refval = tmp2->val;
78+
tmp = tmp2;
79+
tmp2 = tmp2->next;
80+
flag = false;
81+
}
82+
}
83+
}
84+
85+
if (flag)
86+
{
87+
lastnode->next = nullptr;
88+
delete tmp;
89+
}
90+
91+
return head;
92+
}

0 commit comments

Comments
 (0)