Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 9e4b10a

Browse files
committedJan 31, 2022
added problem with solution
1 parent b5c2a0f commit 9e4b10a

17 files changed

+501
-24
lines changed
 

‎src/Ascii.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
public class Ascii {
2+
public static void main(String[] args) {
3+
char ch = 'a';
4+
System.out.println(ch+0);
5+
}
6+
}

‎src/RomanToInteger.java

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
//Solution: https://leetcode.com/problems/roman-to-integer/
2+
3+
class RomanToInteger {
4+
public static void main(String[] args) {
5+
romanToInt("LVIII");
6+
}
7+
public static int romanToInt(String s) {
8+
9+
int lastValue=0;
10+
int currentValue=0;
11+
int sum=0;
12+
13+
for(char ch:s.toCharArray()){
14+
currentValue = symbolToValue(ch);
15+
if(currentValue<lastValue){
16+
sum +=currentValue - lastValue;
17+
}else{
18+
sum +=currentValue;
19+
}
20+
lastValue= currentValue;
21+
}
22+
return sum;
23+
24+
}
25+
public static int symbolToValue(char ch){
26+
int result=0;
27+
switch(ch){
28+
case 'I':
29+
result=1;
30+
break;
31+
case 'V':
32+
result = 5;
33+
break;
34+
case 'X':
35+
result =10;
36+
break;
37+
case 'L':
38+
result = 50;
39+
break;
40+
case 'C':
41+
result = 100;
42+
break;
43+
case 'D':
44+
result = 500;
45+
break;
46+
case 'M':
47+
result = 1000;
48+
break;
49+
}
50+
return result;
51+
}
52+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package number_problem;
2+
3+
public class BinarySearchSQRT {
4+
public static void main(String[] args) {
5+
int n=40;
6+
int p=3;
7+
System.out.printf("%.3f",sqrt(n,p));
8+
}
9+
public static double sqrt(int n,int p){
10+
double root = 0.0;
11+
int start=0;
12+
int end=n;
13+
while(start<=end){
14+
int mid = start + (end - start)/2;
15+
if(mid*mid == n){
16+
return mid;
17+
}else if(mid*mid >n){
18+
end = mid - 1;
19+
}else{
20+
start = mid + 1;
21+
}
22+
}
23+
System.out.println(end);
24+
root = end;
25+
double incr=0.1;
26+
for(int i=1;i<=p;i++){
27+
while(root*root<=n){
28+
root += incr;
29+
}
30+
incr = incr/10;
31+
}
32+
return root;
33+
}
34+
}

‎src/number_problem/MagicNumber.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package number_problem;
2+
3+
public class MagicNumber {
4+
public static void main(String[] args) {
5+
int n=6;
6+
//for eg. if n=1 =>
7+
int result=0;
8+
int base = 5;
9+
while(n>0){
10+
//get last bit
11+
int last = n & 1;
12+
n = n>>1;//left shift
13+
result += base *last;
14+
base = base*5;
15+
}
16+
System.out.println(result);
17+
}
18+
}

‎src/number_problem/NoOfDigit.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package number_problem;
2+
3+
public class NoOfDigit {
4+
public static void main(String[] args) {
5+
int val = 6;
6+
int base =2;
7+
int result = (int)(Math.log(6)/Math.log(base))+1;
8+
System.out.println(result);
9+
}
10+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package number_problem;
2+
3+
public class PowerUsingBitWise {
4+
public static void main(String[] args) {
5+
int power = 6;
6+
int base = 3;
7+
int ans = 1;
8+
while(power > 0){
9+
10+
if((power & 1)==1){
11+
ans *= base;
12+
}
13+
power = power >> 1;
14+
15+
base *=base;
16+
}
17+
System.out.println(ans);
18+
19+
}
20+
}

‎src/recursion/DigitProduct.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package recursion;
2+
3+
public class DigitProduct {
4+
public static void main(String[] args) {
5+
System.out.println(digitProduct(12345));
6+
}
7+
public static int digitProduct(int n){
8+
if(n%10==n){
9+
return n;
10+
}
11+
return (n%10) * digitProduct(n/10);
12+
}
13+
}

‎src/recursion/Factorial.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package recursion;
2+
3+
public class Factorial {
4+
public static void main(String[] args) {
5+
int n=5;
6+
System.out.println(print(n));
7+
}
8+
public static int print(int n){
9+
if(n==0 || n==1){
10+
return 1;
11+
}
12+
return n*print(n-1);
13+
}
14+
}

‎src/recursion/NTo1.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package recursion;
2+
3+
public class NTo1 {
4+
public static void main(String[] args){
5+
int n=7;
6+
print(n);
7+
}
8+
public static void print(int n){
9+
if(n<=0){
10+
return;
11+
}
12+
System.out.println(n);
13+
print(n-1);
14+
}
15+
}

‎src/recursion/OneToN.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package recursion;
2+
3+
public class OneToN {
4+
public static void main(String[] args) {
5+
int n=5;
6+
print(5);
7+
}
8+
public static void print(int n){
9+
if(n<=0){
10+
return;
11+
}
12+
print(n-1);
13+
System.out.println(n);
14+
}
15+
}
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
package recursion;
2+
3+
import java.util.Arrays;
4+
5+
public class PatternWithRecursion {
6+
public static void main(String[] args) {
7+
int[] arr = {4,3,2,1};
8+
selectionSort(arr, arr.length,1,0 );
9+
System.out.println(Arrays.toString(arr));
10+
}
11+
public static void selectionSort(int[] arr,int r, int c,int maxIndex){
12+
if(r==0){
13+
return;
14+
}
15+
if(c<r){
16+
//System.out.print(" * ");
17+
if(arr[c]>arr[maxIndex]){
18+
maxIndex=c;
19+
}
20+
selectionSort(arr,r,c+1,maxIndex);
21+
22+
}else{
23+
24+
25+
int temp = arr[r-1];
26+
arr[r-1]= arr[maxIndex];
27+
arr[maxIndex]=temp;
28+
29+
selectionSort(arr,r-1,1,0);
30+
}
31+
}
32+
public static void bubbleSortUpd(int[] arr,int r, int c,boolean isSorted){
33+
if(r==0){
34+
return;
35+
}
36+
if(c<r){
37+
//System.out.print(" * ");
38+
if(arr[c]>arr[c+1]){
39+
int temp = arr[c];
40+
arr[c]= arr[c+1];
41+
arr[c+1] = temp;
42+
isSorted=false;
43+
}
44+
bubbleSortUpd(arr,r,c+1,isSorted);
45+
46+
}else{
47+
48+
//System.out.println();
49+
if(isSorted){
50+
return;
51+
}
52+
bubbleSortUpd(arr,r-1,0,true);
53+
}
54+
}
55+
public static void bubbleSort(int[] arr,int r, int c){
56+
if(r==0){
57+
return;
58+
}
59+
if(c<r){
60+
//System.out.print(" * ");
61+
if(arr[c]>arr[c+1]){
62+
int temp = arr[c];
63+
arr[c]= arr[c+1];
64+
arr[c+1] = temp;
65+
}
66+
bubbleSort(arr,r,c+1);
67+
68+
}else{
69+
70+
//System.out.println();
71+
bubbleSort(arr,r-1,0);
72+
}
73+
}
74+
public static void reversePattern(int r, int c){
75+
if(r==0){
76+
return;
77+
}
78+
if(c<r){
79+
System.out.print(" * ");
80+
reversePattern(r,c+1);
81+
82+
}else{
83+
84+
System.out.println();
85+
reversePattern(r-1,0);
86+
}
87+
}
88+
public static void pattern(int r, int c){
89+
if(r==0){
90+
return;
91+
}
92+
if(c<r){
93+
94+
reversePattern(r,c+1);
95+
System.out.print(" * ");
96+
97+
}else{
98+
reversePattern(r-1,0);
99+
System.out.println();
100+
101+
}
102+
}
103+
104+
}

‎src/recursion/ReverseNumber.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package recursion;
2+
3+
public class ReverseNumber {
4+
public static void main(String[] args) {
5+
6+
}
7+
// public static int reverseNumber(int n){
8+
// if(n%10==n){
9+
// return n;
10+
// }
11+
// int remainder = n%10;
12+
//
13+
// return ;
14+
// }
15+
}

‎src/recursion/SumOfDigit.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package recursion;
2+
3+
public class SumOfDigit {
4+
public static void main(String[] args) {
5+
System.out.println(sumOfDigit(12345));
6+
}
7+
public static int sumOfDigit(int n){
8+
if(n==0){
9+
return 0;
10+
}
11+
int lastDigit = n%10;
12+
return lastDigit +sumOfDigit(n/10);
13+
}
14+
}

‎src/sorting/MergeSort.java

Lines changed: 68 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,27 @@
11
package sorting;
22

3+
import java.util.Arrays;
34
import java.util.Scanner;
45

56
public class MergeSort {
67

7-
static void divide(int[] arr,int start,int end){
8-
if(start<end){
9-
int mid = (start + end)/2;
10-
divide(arr,start,mid);
11-
divide(arr,mid+1,end);
12-
merge(arr,start,mid,end);
8+
static void mergeSortInPlace(int[] arr,int start,int end){
9+
if(end-start==1){
10+
return;
1311
}
12+
int mid = (start + end)/2;
13+
mergeSortInPlace(arr,start,mid);
14+
mergeSortInPlace(arr,mid,end);
15+
mergeInPlace(arr,start,mid,end);
1416
}
15-
static void merge(int[] arr, int start,int mid, int end){
16-
int[] temp = new int[(end - start) + 1];
17+
static void mergeInPlace(int[] arr, int start,int mid, int end){
18+
int[] temp = new int[end - start];
1719

1820
int k=0;
1921
int i=start;
20-
int j=mid+1;
22+
int j=mid;
2123

22-
while(i<=mid && j<=end){
24+
while(i<mid && j<end){
2325
if (arr[i]<arr[j]){
2426
temp[k]=arr[i];
2527
i++;
@@ -30,12 +32,12 @@ static void merge(int[] arr, int start,int mid, int end){
3032
k++;
3133
}
3234

33-
while (i<=mid){
35+
while (i<mid){
3436
temp[k]=arr[i];
3537
i++;
3638
k++;
3739
}
38-
while(j<=end){
40+
while(j<end){
3941
temp[k]=arr[j];
4042
j++;
4143
k++;
@@ -47,22 +49,64 @@ static void merge(int[] arr, int start,int mid, int end){
4749

4850
public static void main(String[] args) {
4951

50-
Scanner input = new Scanner(System.in);
52+
// Scanner input = new Scanner(System.in);
53+
//
54+
// System.out.println("Enter no. of element");
55+
// int N = input.nextInt();
56+
//
57+
// int[] inputArr = new int[N];
58+
//
59+
// for (int i = 0; i < inputArr.length; i++) {
60+
// System.out.println("Array [" + i + "] :");
61+
// inputArr[i] = input.nextInt();
62+
// }
63+
// System.out.println("Output");
64+
// //divide(inputArr,0,N-1);
65+
int[] arr = {34,12,89,35};
66+
mergeSortInPlace(arr,0,arr.length);
67+
System.out.println(Arrays.toString(arr));
5168

52-
System.out.println("Enter no. of element");
53-
int N = input.nextInt();
69+
// int[]result =mergeSort(new int[]{12,3,1,8,11});
70+
// System.out.println(Arrays.toString(result));
71+
// for (int j : inputArr) {
72+
// System.out.println(" " + j);
73+
// }
74+
}
75+
public static int[] mergeSort(int[] arr){
76+
if(arr.length==1){
77+
return arr;
78+
}
79+
int mid = arr.length/2;
80+
int[] left = mergeSort(Arrays.copyOfRange(arr,0,mid));
81+
int[] right = mergeSort(Arrays.copyOfRange(arr,mid,arr.length));
5482

55-
int[] inputArr = new int[N];
83+
return mergeArray(left,right);
84+
}
5685

57-
for (int i = 0; i < inputArr.length; i++) {
58-
System.out.println("Array [" + i + "] :");
59-
inputArr[i] = input.nextInt();
86+
private static int[] mergeArray(int[] left, int[] right) {
87+
int[] result = new int[left.length+right.length];
88+
int i=0,j=0;
89+
int k=0;
90+
while(i<left.length && j<right.length){
91+
if(left[i]<right[j]){
92+
result[k]=left[i];
93+
i++;
94+
}else{
95+
result[k]=right[j];
96+
j++;
97+
}
98+
k++;
6099
}
61-
System.out.println("Output");
62-
divide(inputArr,0,N-1);
63-
64-
for (int j : inputArr) {
65-
System.out.println(" " + j);
100+
while(i<left.length){
101+
result[k]=left[i];
102+
i++;
103+
k++;
104+
}
105+
while(j<right.length){
106+
result[k]=right[j];
107+
j++;
108+
k++;
66109
}
110+
return result;
67111
}
68112
}

‎src/string/RemoveChFromString.java

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package string;
2+
3+
public class RemoveChFromString {
4+
public static void main(String[] args) {
5+
StringBuilder sb = new StringBuilder("baccad");
6+
StringBuilder processing = new StringBuilder();
7+
char ch = 'a';
8+
9+
// skipStringWithIteration(sb, ch);
10+
// skip(processing,sb);
11+
System.out.println(skip(sb));
12+
13+
}
14+
15+
private static void skipStringWithIteration(StringBuilder sb, char ch) {
16+
for(int i = 0; i< sb.length(); i++){
17+
if(sb.charAt(i)== ch){
18+
sb.deleteCharAt(i);
19+
}
20+
}
21+
System.out.println(sb);
22+
}
23+
24+
private static void skip(StringBuilder processing, StringBuilder updating){
25+
if(updating.length()==0){
26+
System.out.println(processing);
27+
return;
28+
}
29+
if(updating.charAt(0)=='a'){
30+
skip(processing,updating.deleteCharAt(0));
31+
}else{
32+
processing.append(updating.charAt(0));
33+
skip(processing,updating.deleteCharAt(0));
34+
}
35+
36+
37+
}
38+
public static StringBuilder skip(StringBuilder str){
39+
StringBuilder result = new StringBuilder();
40+
if(str.length()==0){
41+
return result;
42+
}
43+
if(str.charAt(0)=='a'){
44+
return result.append(skip(str.deleteCharAt(0)));
45+
}else{
46+
result.append(str.charAt(0));
47+
return result.append(skip(str.deleteCharAt(0)));
48+
}
49+
}
50+
51+
}

‎src/string/StringSubSet.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package string;
2+
3+
import java.util.ArrayList;
4+
import java.util.HashSet;
5+
import java.util.List;
6+
import java.util.Set;
7+
8+
public class StringSubSet {
9+
public static void main(String[] args) {
10+
System.out.println(subSet("","abc"));
11+
}
12+
public static List<String> subSet(String process, String update){
13+
List<String> result = new ArrayList<>();
14+
if(update.length()==0){
15+
if(!process.isEmpty()){
16+
result.add(process.toString());
17+
}
18+
19+
return result;
20+
}
21+
// result.add(process.toString()+update.charAt(0));
22+
// result.add(process.toString());
23+
//ignore the character
24+
result.addAll(subSet(process,update.substring(1)));
25+
result.addAll(subSet(process +(update.charAt(0)),update.substring(1)));
26+
return result;
27+
}
28+
}

‎src/string/SubSetArray.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package string;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
public class SubSetArray {
7+
public static void main(String[] args) {
8+
System.out.println(arraySubSet(new int[]{1,2,3}));
9+
}
10+
public static List<List<Integer>> arraySubSet(int[] arr){
11+
List<List<Integer>> outer = new ArrayList<>();
12+
outer.add(new ArrayList<>());
13+
for(int val : arr){
14+
int n = outer.size();
15+
for(int i=0;i<n;i++){
16+
List<Integer> internal = new ArrayList<>(outer.get(i));
17+
internal.add(val);
18+
outer.add(internal);
19+
}
20+
}
21+
22+
return outer;
23+
}
24+
}

0 commit comments

Comments
 (0)
Please sign in to comment.