Greedy Solutions
Greedy Solutions
[email protected]
Solution 1:
import java.util.*;
class Solution {
if (n == 0)
return 0;
int r = 0, l = 0;
int ans = 0;
for(int i = 0; i < n; i++) {
if (str.charAt(i) == 'R'){
r++;
}
if (r == l){
ans++;
}
}
return ans;
}
System.out.print(BalancedPartition(str, n) + "\n");
}
}
Solution 2 :
[email protected]
Space Complexity: o(1)
class Solution {
if (K <= 0)
return 0;
int L = range[0];
int R = range[1];
Solution 3 :
Time Complexity : o(n)
Space Complexity: o(n)
[email protected]
import java.util.Arrays;
public class Main {
public static char[] lexo_small(int n, int k){
char arr[] = new char[n];
Arrays.fill(arr, 'a');
for (int i = n - 1; i >= 0; i--) {
k -= i;
if (k >= 0) {
if (k >= 26) {
arr[i] = 'z';
k -= 26;
}
else {
arr[i] = (char)(k + 97 - 1);
k -= arr[i] - 'a' + 1;
}
}
else
break;
k += i;
}
return arr;
}
System.out.print(new String(arr));
}
}
Solution 4 :
[email protected]
Time Complexity : o(n)
Space Complexity: o(1)
class Solution {
static int maxProfit(int prices[], int n)
{
int buy = prices[0], max_profit = 0;
for (int i = 1; i < n; i++) {
if (buy > prices[i])
buy = prices[i];
else if (prices[i] - buy > max_profit)
max_profit = prices[i] - buy;
}
return max_profit;
}
Solution 5 :
class Solution {
public static int ans = 10000000;
public static void solve(int a[], int n, int k,
int index, int sum, int maxsum){
if (k == 1) {
maxsum = Math.max(maxsum, sum);
sum = 0;
[email protected]
for (int i = index; i < n; i++) {
sum += a[i];
}
maxsum = Math.max(maxsum, sum);
ans = Math.min(ans, maxsum);
return;
}
sum = 0;
for (int i = index; i < n; i++) {
sum += a[i];
maxsum = Math.max(maxsum, sum);
solve(a, n, k - 1, i + 1, sum, maxsum);
}
}
public static void main(String[] args){
int arr[] = { 1, 2, 3, 4 };
int k = 3; // K divisions
int n = 4; // Size of Array
solve(arr, n, k, 0, 0, 0);
System.out.println(ans + "\n");
}
}