Skip to content

Commit a4ec1bc

Browse files
Merge pull request PawanJaiswal08#19 from Sai-Tejaswi-kallepalli/master
added 9 solution files java hactoberfest-2022
2 parents 17672bc + 06bab40 commit a4ec1bc

9 files changed

+228
-0
lines changed

1.Two-sum.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
public class Solution {
2+
public int[] twoSum(int[] nums, int target) {
3+
Map<Integer, Integer> map = new HashMap<>();
4+
for (int i = 0; i < nums.length; i++) {
5+
int x = nums[i];
6+
if (map.containsKey(target - x)) {
7+
return new int[]{map.get(target - x), i};
8+
}
9+
map.put(x, i);
10+
}
11+
throw new IllegalArgumentException("No two sum solution");
12+
}
13+
}

12.Integer to Roman.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
class Solution {
2+
public String intToRoman(int num) {
3+
Map<Integer, String> map = new HashMap();
4+
map.put(1, "I"); map.put(5, "V"); map.put(10, "X");
5+
map.put(50, "L"); map.put(100, "C"); map.put(500, "D"); map.put(1000, "M");
6+
map.put(4, "IV"); map.put(9, "IX"); map.put(40, "XL"); map.put(90, "XC");
7+
map.put(400, "CD"); map.put(900, "CM");
8+
9+
int[] sequence = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
10+
11+
StringBuffer sb = new StringBuffer();
12+
for (int i = 0; i<sequence.length; i++) {
13+
int base = sequence[i];
14+
15+
while (num >= base) {
16+
sb.append(map.get(base));
17+
num -= base;
18+
}
19+
}
20+
21+
return sb.toString();
22+
}
23+
}

2.Add-Two-Numbers.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
2+
public class Solution {
3+
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
4+
ListNode dummyHead = new ListNode(0);
5+
ListNode p = l1, q= l2, curr = dummyHead;
6+
int carry = 0;
7+
while (p != null || q!= null) {
8+
int x = (p != null) ? p.val : 0;
9+
int y = (q != null) ? q.val : 0;
10+
int digit = carry + x + y;
11+
carry = digit / 10;
12+
curr.next = new ListNode(digit % 10);
13+
curr = curr.next;
14+
if (p != null) p = p.next;
15+
if (q != null) q = q.next;
16+
}
17+
if (carry > 0) {
18+
curr.next = new ListNode(carry);
19+
}
20+
return dummyHead.next;
21+
}
22+
}

3.Longest_Substring.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
public class Solution {
2+
public int lengthOfLongestSubstring(String s) {
3+
int[] charMap = new int[256];
4+
Arrays.fill(charMap, -1);
5+
int i = 0, maxLen = 0;
6+
for (int j = 0; j < s.length(); j++) {
7+
if (charMap[s.charAt(j)] >= i) {
8+
i = charMap[s.charAt(j)] + 1;
9+
}
10+
charMap[s.charAt(j)] = j;
11+
maxLen = Math.max(j - i + 1, maxLen);
12+
}
13+
return maxLen;
14+
}
15+
}

4.Median_of_two_Sorted_array.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
public class Solution {
2+
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
3+
int p1 = 0, p2 = 0, pos = 0;
4+
int ls1 = nums1.length, ls2 = nums2.length;
5+
int[] all_nums = new int[ls1+ls2];
6+
double median = 0.0;
7+
while (p1 < ls1 && p2 < ls2){
8+
if (nums1[p1] <= nums2[p2])
9+
all_nums[pos++] = nums1[p1++];
10+
else
11+
all_nums[pos++] = nums2[p2++];
12+
}
13+
while (p1 < ls1)
14+
all_nums[pos++] = nums1[p1++];
15+
while (p2 < ls2)
16+
all_nums[pos++] = nums2[p2++];
17+
if ((ls1 + ls2) % 2 == 1)
18+
median = all_nums[(ls1 + ls2) / 2];
19+
else
20+
median = (all_nums[(ls1 + ls2) / 2] + all_nums[(ls1 + ls2) / 2 - 1]) / 2.0;
21+
return median;
22+
}
23+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
public class Solution {
2+
public String longestPalindrome(String s) {
3+
int start = 0, end = 0;
4+
for (int i = 0; i < s.length(); i++) {
5+
// aba
6+
int len1 = expandAroundCenter(s, i, i);
7+
// bb
8+
int len2 = expandAroundCenter(s, i, i + 1);
9+
int len = Math.max(len1, len2);
10+
if (len > end - start) {
11+
start = i - (len - 1) / 2;
12+
end = i + len / 2;
13+
}
14+
}
15+
return s.substring(start, end + 1);
16+
}
17+
18+
private int expandAroundCenter(String s, int left, int right) {
19+
int L = left, R = right;
20+
while (L >= 0 && R < s.length() && s.charAt(L) == s.charAt(R)) {
21+
L--;
22+
R++;
23+
}
24+
return R - L - 1;
25+
}
26+
27+
28+
29+

7.Reverse.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
class Solution {
2+
public int reverse(int x) {
3+
if (x == 0) return 0;
4+
long res = 0;
5+
while (x != 0) {
6+
res = res * 10 + x % 10;
7+
if (res > Integer.MAX_VALUE || res < Integer.MIN_VALUE)
8+
return 0;
9+
x /= 10;
10+
}
11+
return (int) res;
12+
}
13+
}

8.String_to_Integer.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
public class Solution {
2+
private static final int maxDiv10 = Integer.MAX_VALUE / 10;
3+
public int myAtoi(String str) {
4+
int i = 0, n = str.length();
5+
while (i < n && Character.isWhitespace(str.charAt(i)))
6+
i++;
7+
int sign = 1;
8+
if (i < n && str.charAt(i) == '+')
9+
i++;
10+
else if (i < n && str.charAt(i) == '-') {
11+
sign = -1;
12+
i++;
13+
}
14+
int num = 0;
15+
while (i < n && Character.isDigit(str.charAt(i))) {
16+
int digit = Character.getNumericValue(str.charAt(i));
17+
if (num > maxDiv10 || num == maxDiv10 && digit >= 8)
18+
return sign == 1 ? Integer.MAX_VALUE : Integer.MIN_VALUE;
19+
num = num * 10 + digit;
20+
i++;
21+
}
22+
return sign * num;
23+
}
24+
}

9.Palindrome-Number.java

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
class Solution {
2+
public boolean isPalindrome(int x) {
3+
if (x < 0)
4+
return false;
5+
int temp = x;
6+
int len = 0;
7+
while (temp != 0) {
8+
temp /= 10;
9+
len ++;
10+
}
11+
temp = x;
12+
int left, right;
13+
for (int i = 0; i < len / 2; i++) {
14+
right = temp % 10;
15+
left = temp / (int) Math.pow(10, len - 2 * i - 1);
16+
left = left % 10;
17+
if (left != right)
18+
return false;
19+
temp /= 10;
20+
}
21+
return true;
22+
}
23+
24+
25+
26+
public boolean isPalindrome(int x) {
27+
if (x < 0) return false;
28+
int div = 1;
29+
while ( x / div >= 10) {
30+
div *= 10;
31+
}
32+
while (x !=0) {
33+
int l = x / div;
34+
int r = x % 10;
35+
if (l != r) return false;
36+
// Remove left and right number
37+
x = (x % div) / 10;
38+
div /= 100;
39+
}
40+
return true;
41+
}
42+
}
43+
44+
45+
46+
47+
48+
class Solution {
49+
public boolean isPalindrome(int x) {
50+
int r,s=0,number=x;
51+
if(number<0){
52+
return false;
53+
}
54+
while (number!=0){
55+
r=number%10;
56+
s= s*10 +r;
57+
number/=10;
58+
}
59+
if (s==x){
60+
return true;
61+
}
62+
else {
63+
return false;
64+
}
65+
}
66+
}

0 commit comments

Comments
 (0)