Skip to content

Commit 1f2981e

Browse files
committed
Added more solutions inside Practice>Algorithms category
1 parent 851915f commit 1f2981e

File tree

4 files changed

+100
-2
lines changed

4 files changed

+100
-2
lines changed

.project

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>Hackerrank-Solutions</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
</buildSpec>
9+
<natures>
10+
</natures>
11+
</projectDescription>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.javaaid.hackerrank.solutions.algorithms.dynamicprogramming;
2+
3+
import java.util.Scanner;
4+
5+
public class TheMaximumSubarray {
6+
7+
static int[] maxSubarray(int[] arr) {
8+
int max_so_far = Integer.MIN_VALUE, max_end_here = 0, maxSum = 0;
9+
int ans[] = new int[2];
10+
for (int i = 0; i < arr.length; i++) {
11+
if (arr[i] > 0)
12+
maxSum += arr[i];
13+
max_end_here += arr[i];
14+
max_end_here = Math.max(max_end_here, arr[i]);
15+
max_so_far = Math.max(max_so_far, max_end_here);
16+
}
17+
ans[0] = max_so_far;
18+
ans[1] = max_so_far < 0 ? max_so_far : maxSum;
19+
return ans;
20+
21+
}
22+
public static void main(String[] args) {
23+
Scanner in = new Scanner(System.in);
24+
int t = in.nextInt();
25+
for (int a0 = 0; a0 < t; a0++) {
26+
int n = in.nextInt();
27+
int[] arr = new int[n];
28+
for (int arr_i = 0; arr_i < n; arr_i++) {
29+
arr[arr_i] = in.nextInt();
30+
}
31+
int[] result = maxSubarray(arr);
32+
for (int i = 0; i < result.length; i++) {
33+
System.out.print(result[i] + (i != result.length - 1 ? " " : ""));
34+
}
35+
System.out.println("");
36+
37+
}
38+
in.close();
39+
}
40+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.javaaid.hackerrank.solutions.algorithms.recursion;
2+
3+
import java.math.BigInteger;
4+
5+
public class RecursiveDigitSum {
6+
7+
// method 1 -> recursive solution
8+
static int digitSum(String n, int k) {
9+
long superDigit = getSuperDigit(n);
10+
long n1 = getSuperDigit(superDigit);
11+
long k1 = getSuperDigit(k);
12+
13+
long result = n1 * k1;
14+
15+
while (result / 10 != 0) {
16+
result = getSuperDigit(result);
17+
}
18+
19+
return (int) result;
20+
}
21+
22+
private static long getSuperDigit(String n) {
23+
if (n == null || n.isEmpty())
24+
return 0;
25+
return (n.charAt(0) - '0') + getSuperDigit(n.substring(1));
26+
}
27+
28+
private static long getSuperDigit(long n) {
29+
if (n / 10 != 0)
30+
return (n % 10) + getSuperDigit(n / 10);
31+
return (n % 10);
32+
}
33+
34+
// method 2 > Iterative solutions hint -->http://applet-magic.com/digitsummod9.htm
35+
static int digitSumUsingMathTrick(String n, int k) {
36+
BigInteger n1 = new BigInteger(n);
37+
n1 = n1.multiply(new BigInteger(k + ""));
38+
n1 = n1.remainder(new BigInteger("9"));
39+
return n1.intValue() == 0 ? 9 : n1.intValue();
40+
41+
}
42+
43+
44+
45+
}

README.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,9 @@
180180
| Strings | [Caesar Cipher: Encryption](https://www.hackerrank.com/challenges/linkedin-practice-caesar-cipher/problem) | [CaesarCipherEncryption.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/Algorithms/src/main/java/com/javaaid/hackerrank/solutions/algorithms/strings/CaesarCipherEncryption.java) |
181181
| Strings | [Game of Thrones - I](https://www.hackerrank.com/challenges/game-of-thrones/problem) | [GameOfThronesI.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/Algorithms/src/main/java/com/javaaid/hackerrank/solutions/algorithms/strings/GameOfThronesI.java) |
182182
| Strings | [Sherlock and the Valid String](https://www.hackerrank.com/challenges/sherlock-and-valid-string/problem) | [SherlockAndTheValidString.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/Algorithms/src/main/java/com/javaaid/hackerrank/solutions/algorithms/strings/SherlockAndTheValidString.java) |
183+
| Recursion | [Recursive Digit Sum](https://www.hackerrank.com/challenges/recursive-digit-sum/problem) | [RecursiveDigitSum.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/Algorithms/src/main/java/com/javaaid/hackerrank/solutions/algorithms/recursion/RecursiveDigitSum.java) |
183184
| Dynamic Programming | [Fibonacci Modified](https://www.hackerrank.com/challenges/fibonacci-modified/problem) | [FibonacciModified.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/Algorithms/src/main/java/com/javaaid/hackerrank/solutions/algorithms/dynamicprogramming/FibonacciModified.java) |
185+
| Dynamic Programming | [The Maximum Subarray](https://www.hackerrank.com/challenges/maxsubarray/problem) | [TheMaximumSubarray.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/Algorithms/src/main/java/com/javaaid/hackerrank/solutions/algorithms/dynamicprogramming/TheMaximumSubarray.java) |
184186
| Bit Manipulation | [Lonely Integer](https://www.hackerrank.com/challenges/lonely-integer/problem) | [LonelyInteger.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/Algorithms/src/main/java/com/javaaid/hackerrank/solutions/algorithms/bitmanipulation/LonelyInteger.java) |
185187
| Bit Manipulation | [Bit Manipulation: Lonely Integer](https://www.hackerrank.com/challenges/ctci-lonely-integer/problem) | [BitManipulationLonelyInteger.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/Algorithms/src/main/java/com/javaaid/hackerrank/solutions/algorithms/bitmanipulation/BitManipulationLonelyInteger.java) |
186188
| Bit Manipulation | [Sum vs XOR](https://www.hackerrank.com/challenges/sum-vs-xor/problem) | [SumvsXOR.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/Algorithms/src/main/java/com/javaaid/hackerrank/solutions/algorithms/bitmanipulation/SumvsXOR.java) |
@@ -221,7 +223,7 @@
221223
| Arrays | [Left Rotation](https://www.hackerrank.com/challenges/array-left-rotation) | [LeftRotation.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/DataStructures/src/main/java/com/javaaid/hackerrank/solutions/datastructures/arrays/LeftRotation.java) |
222224
| Arrays | [Big Sorting](https://www.hackerrank.com/challenges/big-sorting/problem) | [BigSorting.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/DataStructures/src/main/java/com/javaaid/hackerrank/solutions/datastructures/arrays/BigSorting.java) |
223225
| Arrays | [Sparse Arrays](https://www.hackerrank.com/challenges/sparse-arrays/problem) | [SparseArrays.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/DataStructures/src/main/java/com/javaaid/hackerrank/solutions/datastructures/arrays/SparseArrays.java) |
224-
| Arrays | [Array Manipulation](https://www.hackerrank.com/challenges/crush/problem) | [ArrayManipulation.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/DataStructures/src/main/java/com/javaaid/hackerrank/solutions/datastructures/arrays/ArrayManipulation.java) |
226+
| Arrays | [Array Manipulation](https://www.hackerrank.com/challenges/crush/problem) | [ArrayManipulation.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/DataStructures/src/main/java/com/javaaid/hackerrank/solutions/datastructures/arrays/ArrayManipulation.java) |
225227
| Stacks | [Maximum Element](https://www.hackerrank.com/challenges/maximum-element) | [MaximumElement.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/DataStructures/src/main/java/com/javaaid/hackerrank/solutions/datastructures/stacks/MaximumElement.java) |
226228
| Stacks | [Balanced Brackets](https://www.hackerrank.com/challenges/balanced-brackets) | [BalancedBrackets.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/DataStructures/src/main/java/com/javaaid/hackerrank/solutions/datastructures/stacks/BalancedBrackets.java) |
227229
| Stacks | [Equal Stacks](https://www.hackerrank.com/challenges/equal-stacks/problem) | [EqualStacks.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/DataStructures/src/main/java/com/javaaid/hackerrank/solutions/datastructures/stacks/EqualStacks.java) |
@@ -246,7 +248,7 @@
246248
| Linked List | [Get Node Value](https://www.hackerrank.com/challenges/get-the-value-of-the-node-at-a-specific-position-from-the-tail/problem) | [GetNodeValue.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/DataStructures/src/main/java/com/javaaid/hackerrank/solutions/datastructures/linkedlists/GetNodeValue.java) |
247249
| Linked List | [Delete duplicate-value nodes from a sorted linked list](https://www.hackerrank.com/challenges/delete-duplicate-value-nodes-from-a-sorted-linked-list/problem)| [DeleteDuplicateValueNodesFromASortedLinkedList.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/DataStructures/src/main/java/com/javaaid/hackerrank/solutions/datastructures/linkedlists/DeleteDuplicateValueNodesFromASortedLinkedList.java) |
248250
| Linked List | [Cycle Detection](https://www.hackerrank.com/challenges/detect-whether-a-linked-list-contains-a-cycle/problem) | [CycleDetection.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/DataStructures/src/main/java/com/javaaid/hackerrank/solutions/datastructures/linkedlists/CycleDetection.java) |
249-
| Linked List | [Find Merge Point of Two Lists](https://www.hackerrank.com/challenges/find-the-merge-point-of-two-joined-linked-lists/problem) | [FindMergePointOfTwoLists.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/DataStructures/src/main/java/com/javaaid/hackerrank/solutions/datastructures/linkedlists/FindMergePointOfTwoLists.java) |
251+
| Linked List | [Find Merge Point of Two Lists](https://www.hackerrank.com/challenges/find-the-merge-point-of-two-joined-linked-lists/problem) | [FindMergePointOfTwoLists.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/DataStructures/src/main/java/com/javaaid/hackerrank/solutions/datastructures/linkedlists/FindMergePointOfTwoLists.java) |
250252
| Linked List | [Inserting a Node Into a Sorted Doubly Linked List](https://www.hackerrank.com/challenges/insert-a-node-into-a-sorted-doubly-linked-list/problem) | [InsertingANodeIntoASortedDoublyLinkedList.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/DataStructures/src/main/java/com/javaaid/hackerrank/solutions/datastructures/linkedlists/InsertingANodeIntoASortedDoublyLinkedList.java) |
251253
| Linked List | [Reverse a doubly linked list](https://www.hackerrank.com/challenges/reverse-a-doubly-linked-list/problem) | [ReverseADoublyLinkedList.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/DataStructures/src/main/java/com/javaaid/hackerrank/solutions/datastructures/linkedlists/ReverseADoublyLinkedList.java) |
252254
| Tries | [Contacts](https://www.hackerrank.com/challenges/contacts) | [Contacts.java](https://github.com/Java-aid/Hackerrank-Solutions/blob/master/HackerRankDashboard/CoreCS/DataStructures/src/main/java/com/javaaid/hackerrank/solutions/datastructures/tries/Contacts.java) |

0 commit comments

Comments
 (0)