Skip to content

Commit e2bfecb

Browse files
committed
#Modification 10
1 parent d7742f2 commit e2bfecb

35 files changed

Lines changed: 1233 additions & 14 deletions

.vscode/settings.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"files.associations": {
3+
"POSTFIX.C": "cpp"
4+
}
5+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package arrays;
2+
import java.util.*;
3+
4+
//Language: Java
5+
//Time Complexity: O(n) 3 Linear traversals.
6+
//Space Complexity: O(n) Array of candies.
7+
8+
public class Candy_Distribution_Problem{
9+
10+
public int candy(int[] ratings) {
11+
if (ratings.length < 2)
12+
return ratings.length;
13+
14+
15+
int[] candies = new int[ratings.length];
16+
Arrays.fill(candies, 1);
17+
18+
// ** Step 1: Forward **
19+
for (int i=0; i<ratings.length-1; i++) {
20+
if (ratings[i] >= ratings[i+1]) {
21+
continue;
22+
}
23+
candies[i+1] = candies[i] + 1;
24+
}
25+
26+
// ** Step 2: Backward **
27+
for (int i=ratings.length-1; i>0; i--) {
28+
if (ratings[i] >= ratings[i-1]) {
29+
continue;
30+
}
31+
candies[i-1] = Math.max(candies[i] + 1, candies[i-1]);
32+
}
33+
34+
// ** Step 3: Count Candies **
35+
int count = 0;
36+
for (int i=0; i<candies.length; i++) {
37+
count += candies[i];
38+
}
39+
40+
return count;
41+
}
42+
43+
public static void main(String[] args) {
44+
@SuppressWarnings("unused")
45+
int[] ratings = {12 , 34 , 45 , 67 , 43 , 75};
46+
}
47+
48+
}
49+

basics/Operators.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ public static void main(String[] args) {
66
int a = 7,b= 6;
77
int c = a*b; //* (multiplication) operator
88
int d = a+b; // + addition operator
9-
int e = a/b; // - substration operator
9+
int e = a/b; // - subtraction operator
1010
int f = a%b; // % modulus operator
1111
int g = a^b; // ^ power operator
1212
long h = b^a;

dp/CoinChoiseProblem.java

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package dp;
2+
3+
import java.util.*;
4+
5+
public class CoinChoiseProblem {
6+
7+
public static void main(String[] args) {
8+
9+
10+
int n = 18;
11+
int a[] = {7, 5, 1};
12+
int dp[] = new int[n+1];
13+
14+
Arrays.fill(dp, -1);
15+
dp[0] = 0;
16+
17+
int ans = minCoins(n, a, dp);
18+
System.out.println(ans);
19+
20+
for(int x: dp)
21+
System.out.println(x + " ");
22+
}
23+
24+
static int minCoins(int n, int a[], int dp[]) {
25+
26+
if(n == 0)
27+
return 0;
28+
29+
int ans = Integer.MAX_VALUE;
30+
31+
for(int i = 0; i<a.length; i++) {
32+
33+
if(n - a[i] >= 0) {
34+
35+
int subAns = 0;
36+
37+
if(dp[n-a[i]] != -1)
38+
subAns = dp[n-a[i]];
39+
40+
else
41+
subAns = minCoins(n-a[i],a, dp);
42+
43+
if(subAns != Integer.MAX_VALUE && subAns + 1 < ans)
44+
ans = subAns + 1;
45+
}
46+
}
47+
48+
return dp[n] = ans;
49+
50+
}
51+
}

graphs/Graph.java

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package graphs;
2+
import java.util.*;
3+
4+
public class Graph {
5+
6+
private LinkedList<Integer> adj[];
7+
8+
@SuppressWarnings("unchecked")
9+
public Graph(int v) {
10+
//array of Linked List
11+
adj = new LinkedList[v];
12+
13+
for(int i=0;i<v;i++) {
14+
adj[i] = new LinkedList<Integer>();
15+
}
16+
}
17+
18+
public void addEdge(int source, int destination) {
19+
adj[source].add(destination);
20+
adj[destination].add(source);
21+
}
22+
23+
public static void main(String[] args) {
24+
Scanner sc = new Scanner(System.in);
25+
26+
System.out.println("Enter number of vertices and edges");
27+
int v = sc.nextInt();
28+
int e = sc.nextInt();
29+
30+
Graph graph = new Graph(v);
31+
System.out.println("Enter " + e + " edges");
32+
33+
for(int i=0;i<e;i++) {
34+
int source = sc.nextInt();
35+
int destination = sc.nextInt();
36+
graph.addEdge(source, destination);
37+
}
38+
39+
sc.close();
40+
}
41+
}

graphs/Graph_Traversal_DFS.java

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package graphs;
2+
import java.util.*;
3+
4+
public class Graph_Traversal_DFS{
5+
6+
@SuppressWarnings("unused")
7+
private int v;
8+
private LinkedList<Integer> adj[];
9+
10+
@SuppressWarnings("unchecked")
11+
public Graph_Traversal_DFS(int v){
12+
adj = new LinkedList[v];
13+
for(int i = 0 ; i < v ; ++i)
14+
adj[i] = new LinkedList<Integer>();
15+
}
16+
17+
void addEdge(int v, int w) {
18+
adj[v].add(w);
19+
}
20+
21+
void DFSUtil(int v, boolean visited[]) {
22+
visited[v] = true;
23+
System.out.println(v + " ");
24+
25+
Iterator<Integer> i = adj[v].listIterator();
26+
while(i.hasNext()) {
27+
int n = i.next();
28+
if(!visited[n])
29+
DFSUtil(n,visited);
30+
}
31+
}
32+
33+
void DFS(int v) {
34+
boolean visited[] = new boolean[v];
35+
DFSUtil(v,visited);
36+
}
37+
38+
public static void main(String[] args) {
39+
40+
Graph_Traversal_DFS d = new Graph_Traversal_DFS(4);
41+
42+
d.addEdge(0, 1);
43+
d.addEdge(0, 2);
44+
d.addEdge(1, 2);
45+
d.addEdge(2, 0);
46+
d.addEdge(2, 3);
47+
d.addEdge(3, 3);
48+
49+
System.out.println(
50+
"Following is Depth First Traversal "
51+
+ "(starting from vertex 2)");
52+
53+
d.DFS(2);
54+
55+
}
56+
57+
}

matrix/Matrix_Problem_01.java

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
package matrix;
2+
import java.io.*;
3+
4+
/*
5+
* Spiral traversal on a Matrix
6+
*/
7+
8+
/*
9+
* GIven an 2D array, print it in spiral form.
10+
* See the following examples.
11+
*
12+
* Inputs:
13+
* 01 02 03 04
14+
* 05 06 07 08
15+
* 09 10 11 12
16+
* 13 14 15 16
17+
*
18+
* Output:
19+
* 1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10
20+
*
21+
* Explanation:
22+
* The output is matrix in spiral format.
23+
*/
24+
25+
/* Graphical Try:
26+
*
27+
* 01-- 02-- 03-- 04
28+
* |
29+
* 05-- 06-- 07 08
30+
* | | |
31+
* 09 10 11 12
32+
* | |
33+
* 13-- 14-- 15 --16
34+
*
35+
* Output:
36+
* 1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10
37+
*/
38+
39+
@SuppressWarnings("unused")
40+
public class Matrix_Problem_01 {
41+
42+
static void spiralPrint(int m, int n, int[][] a) {
43+
44+
System.out.println("Spiral Traversal of given matrix is: ");
45+
int i, k = 0, l = 0;
46+
47+
/*
48+
* k - starting row index
49+
* m - ending row index
50+
* l - starting column index
51+
* n - ending column index
52+
* i - iterator
53+
*/
54+
55+
while(k < m && l < n) {
56+
57+
58+
for( i = l ; i < n ; ++i)
59+
System.out.print(a[k][i] + " ");
60+
k++;
61+
62+
for(i = k ; i < m ; ++i)
63+
System.out.print(a[i][n - 1] + " ");
64+
n--;
65+
66+
if(l < n) {
67+
for(i = m - 1 ; i >= k ; --i)
68+
System.out.print(a[i][l] + " ");
69+
l++;
70+
}
71+
}
72+
73+
}
74+
75+
public static void main(String[] args) {
76+
77+
int R = 3;
78+
int C = 6;
79+
int a[][] = { { 1 , 2 , 3 , 4 , 5 , 6 },
80+
{ 7 , 8 , 9 , 10 , 11 , 12 },
81+
{ 13 , 14 , 15 , 16 , 17 , 18 }
82+
};
83+
84+
spiralPrint(R,C,a);
85+
}
86+
87+
}

0 commit comments

Comments
 (0)