Skip to content

Commit aeedf2e

Browse files
committed
Update
1 parent 1d2f0e6 commit aeedf2e

9 files changed

+292
-0
lines changed

Codechef/Chef_and_String.cpp

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#include <bits/stdc++.h>
2+
3+
using namespace std;
4+
5+
int solve(string s, int n)
6+
{
7+
8+
}
9+
10+
int main()
11+
{
12+
int testcase;
13+
cin >> testcase;
14+
while (testcase--)
15+
{
16+
string s;
17+
cin >> s;
18+
cout << solve(s, s.size());
19+
}
20+
return 0;
21+
}
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
int Solution::canJump(vector<int> &A)
2+
{
3+
int last = A.size() - 1;
4+
for (int i = A.size() - 1; i >= 0; i--)
5+
{
6+
if (A[i] + i >= last)
7+
{
8+
last = i;
9+
}
10+
}
11+
return last == 0;
12+
}
+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
class Solution
2+
{
3+
public:
4+
int tribonacci(int n)
5+
{
6+
if (n <= 1)
7+
{
8+
return n;
9+
}
10+
if (n == 2)
11+
{
12+
return 1;
13+
}
14+
int ans = 0;
15+
int zero = 0, one = 1, two = 1;
16+
for (int i = 3; i <= n; i++)
17+
{
18+
ans = zero + one + two;
19+
zero = one;
20+
one = two;
21+
two = ans;
22+
}
23+
return ans;
24+
}
25+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
class Solution
2+
{
3+
public:
4+
vector<int> smallerNumbersThanCurrent(vector<int> &nums)
5+
{
6+
7+
map<int, int> mp;
8+
int n = nums.size();
9+
vector<int> snum = nums;
10+
11+
sort(snum.begin(), snum.end());
12+
for (int i = n - 1; i >= 0; i--)
13+
mp[snum[i]] = i;
14+
15+
for (int i = 0; i < n; i++)
16+
nums[i] = mp[nums[i]];
17+
18+
return nums;
19+
}
20+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
class Solution
2+
{
3+
public:
4+
vector<int> createTargetArray(vector<int> &nums, vector<int> &index)
5+
{
6+
vector<int> target;
7+
for (int i = 0; i < nums.size(); ++i)
8+
{
9+
target.insert(target.begin() + index[i], nums[i]);
10+
}
11+
return target;
12+
}
13+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
class Solution
2+
{
3+
public:
4+
int twoEggDrop(int n)
5+
{
6+
return (int)ceil((-1 + sqrt(1 + 8 * n)) / 2);
7+
}
8+
};

Leet Code/53. Maximum Subarray.cpp

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Solution
2+
{
3+
public:
4+
int maxSubArray(vector<int> &nums)
5+
{
6+
int res = nums[0];
7+
int maxending = nums[0];
8+
9+
for (int i = 1; i < nums.size(); i++)
10+
{
11+
maxending = max(nums[i], maxending + nums[i]);
12+
res = max(res, maxending);
13+
}
14+
return res;
15+
}
16+
};

Leet Code/912. Sort an Array.cpp

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
//TODO: //*Correct Approach/
2+
class Solution
3+
{
4+
public:
5+
int partition(vector<int> &nums, int l, int r)
6+
{
7+
int random = l + rand() % (r - l);
8+
swap(nums[l], nums[random]);
9+
int pivot = nums[l];
10+
int i = l - 1, j = r + 1;
11+
12+
while (true)
13+
{
14+
do
15+
{
16+
i++;
17+
} while (nums[i] < pivot);
18+
19+
do
20+
{
21+
j--;
22+
} while (nums[j] > pivot);
23+
24+
if (i >= j)
25+
return j;
26+
27+
swap(nums[i], nums[j]);
28+
}
29+
}
30+
31+
void quickSort(vector<int> &nums, int l, int r)
32+
{
33+
if (l >= r)
34+
{
35+
return;
36+
}
37+
int p = partition(nums, l, r);
38+
quickSort(nums, l, p);
39+
quickSort(nums, p + 1, r);
40+
}
41+
vector<int> sortArray(vector<int> &nums)
42+
{
43+
srand(time(NULL));
44+
quickSort(nums, 0, nums.size() - 1);
45+
return nums;
46+
}
47+
};
48+
49+
//FIXME: //* This approach uses recursion and those give TLE (NOTE: This approach was only used for learning reccursion)/
50+
// class Solution
51+
// {
52+
// public:
53+
// void insert(vector<int> &nums, int temp)
54+
// {
55+
// if (nums.size() == 0 || nums[nums.size() - 1] <= temp)
56+
// {
57+
// nums.push_back(temp);
58+
// return;
59+
// }
60+
// int val = nums[nums.size() - 1];
61+
// nums.pop_back();
62+
// insert(nums, temp);
63+
// nums.push_back(val);
64+
// return;
65+
// }
66+
67+
// vector<int> sortArray(vector<int> &nums)
68+
// {
69+
// if (nums.size() == 1)
70+
// {
71+
// return nums;
72+
// }
73+
// int temp = nums[nums.size() - 1];
74+
// nums.pop_back();
75+
// sortArray(nums);
76+
// insert(nums, temp);
77+
// return nums;
78+
// }
79+
// };

Self/Nqueen.cpp

+98
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
#include <vector>
2+
#include <iostream>
3+
4+
using namespace std;
5+
bool isSafe(int ans[][10], int i, int j, int queens)
6+
{
7+
//Check for top element
8+
for (int row = 0; row < i; row++)
9+
{
10+
if (ans[row][j] == 1)
11+
{
12+
return false;
13+
}
14+
}
15+
int x = i, y = j;
16+
//Check for left diagonal
17+
while (x >= 0 && y >= 0)
18+
{
19+
if (ans[x][y] == 1)
20+
{
21+
return false;
22+
}
23+
x--;
24+
y--;
25+
}
26+
27+
//Check right diagonal
28+
x = i, y = j;
29+
while (x >= 0 && y < queens)
30+
{
31+
if (ans[x][y] == 1)
32+
{
33+
return false;
34+
}
35+
x--;
36+
y++;
37+
}
38+
return true;
39+
}
40+
41+
bool solve(int ans[][10], int qpsf, int queens)
42+
{
43+
if (qpsf == queens)
44+
{
45+
for (int i = 0; i < queens; i++)
46+
{
47+
for (int j = 0; j < queens; j++)
48+
{
49+
if (ans[i][j] == 1)
50+
{
51+
cout << "Q ";
52+
}
53+
else
54+
{
55+
cout << ". ";
56+
}
57+
}
58+
cout << endl;
59+
}
60+
cout << endl;
61+
return true;
62+
}
63+
64+
for (int j = 0; j < queens; j++)
65+
{
66+
if (isSafe(ans, qpsf, j, queens))
67+
{
68+
ans[qpsf][j] = 1;
69+
bool nextpq = solve(ans, qpsf + 1, queens);
70+
if (nextpq)
71+
{
72+
return true;
73+
}
74+
75+
ans[qpsf][j] = 0;
76+
}
77+
}
78+
return false;
79+
}
80+
81+
bool solveNqueens(int queens)
82+
{
83+
int ans[10][10] = {0};
84+
solve(ans, 0, queens);
85+
}
86+
87+
int main()
88+
{
89+
int t;
90+
int queens;
91+
cin >> t;
92+
while (t--)
93+
{
94+
cin >> queens;
95+
solveNqueens(queens);
96+
}
97+
return 0;
98+
}

0 commit comments

Comments
 (0)