Skip to content

Instantly share code, notes, and snippets.

View riyafa's full-sized avatar

Riyafa Abdul Hameed riyafa

View GitHub Profile
Hello World!
class MinimumDepthBinaryTreeBFS {
public int minDepth(TreeNode root) {
if(root == null) {
return 0;
}
Queue<TreeNode> queue = new LinkedList<>();
queue.add(root);
int level = 0;
while(!queue.isEmpty()) {
level++;
class MinimumDepthBinaryTreeDFS {
public int minDepth(TreeNode root) {
if(root == null) {
return 0;
}
int leftHeight = minDepth(root.left);
int rightHeight = minDepth(root.right);
if(leftHeight == 0 || rightHeight == 0) {
return leftHeight + rightHeight + 1;
}
class RomanToInteger {
public int romanToInt(String s) {
int prev = 0;
int result = 0;
for(int i = s.length() -1; i >= 0; i--) {
char cur = s.charAt(i);
int curVal = getInteger(cur);
if(curVal < prev) {
result -= curVal;
} else {
@riyafa
riyafa / ArrangingCoinsBS.java
Created March 15, 2022 07:33
Binary search solution for 441. Arranging Coins: https://youtu.be/H-Tdu8qJ_uk
class ArrangingCoinsBS {
public int arrangeCoins(int n) {
int low = 1;
int high = n;
while(low < high) {
int mid = low +(high -low+1)/2;
long num = (((long)mid * ((long)mid +1l))/2l);
if(num == n) {
return mid;
} else if(n < num){
@riyafa
riyafa / ArrangingCoins.java
Last active March 15, 2022 07:32
Mathematical solution for 441. Arranging Coins: https://youtu.be/H-Tdu8qJ_uk
class ArrangingCoins {
public int arrangeCoins(int n) {
double result = (-1.0 + Math.sqrt(1.0+8.0*n))/2.0;
return (int)Math.floor(result);
}
}
class SubarrayProductLessThanK {
public int numSubarrayProductLessThanK(int[] nums, int k) {
if(k <= 1) {
return 0;
}
int count = 0;
int prod = 1;
for(int i =0, j =0; j < nums.length; j++) {
prod *= nums[j];
while(prod >= k) {
class SearchInRotatedArray {
public int search(int[] nums, int target) {
return search(nums, 0, nums.length - 1, target);
}
private int search(int[] nums, int start, int end, int target) {
if (start > end) return -1;
int midIdx = start + (end - start) / 2;
int mid = nums[midIdx];
if (target == mid) return midIdx;
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> map = new HashMap<>();
for(int i = 0; i < nums.length; i++) {
int num = nums[i];
if(map.containsKey(num)) {
return new int[]{i, map.get(num)};
} else {
map.put(target - num, i);
}
@riyafa
riyafa / BullsAndCows.java
Created October 9, 2020 03:10
Solution for LeetCode Bulls and Cows
public class BullsAndCows {
public String getHint(String secret, String guess) {
int n = secret.length();
int[] map = new int[10];
int a = 0;
int b = 0;
for (int i = 0; i < n; i++) {
int s = secret.charAt(i) - '0';
int g = guess.charAt(i) - '0';
if (s == g) {