Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
ab13102
challenge-1-readme
Arjun-A3 Mar 18, 2025
cd5497b
completed: two-sum-py
Arjun-A3 Mar 19, 2025
2063c08
feat: best-time-to-buy-and-sell-stock
Arjun-A3 Mar 20, 2025
453ba85
feat: day-4-contains-duplicate
Arjun-A3 Mar 21, 2025
91e81a0
feat: challenge-5-completed
Arjun-A3 Mar 22, 2025
8d8d85d
feat: completed-6
Arjun-A3 Mar 23, 2025
2561857
feat: complted-challenge-7
Arjun-A3 Mar 25, 2025
2d8e8bc
feat: complteted
Arjun-A3 Mar 25, 2025
2fb4741
feat: complteted
Arjun-A3 Mar 26, 2025
88194a1
feat: completeed-challenge-10
Arjun-A3 Mar 27, 2025
ca1d369
feat: challenge-11-complted
Arjun-A3 Mar 28, 2025
cce93ce
feat: 12-finished
Arjun-A3 Mar 29, 2025
ae12e0b
feat: complted-13
Arjun-A3 Mar 30, 2025
cb005f3
feat: challenege-14-completed
Arjun-A3 Mar 30, 2025
eba0551
feat: complted-day-15
Arjun-A3 Apr 1, 2025
5411215
completed-day-16
Arjun-A3 Apr 1, 2025
c614fba
feat: completed-challenge-17
Arjun-A3 Apr 3, 2025
c0403e3
feat: completed-chanllenge-18
Arjun-A3 Apr 4, 2025
ad99949
feat: challenge-19-completed
arjun-guvi Apr 5, 2025
42b1ffe
feat: completed-challenge-20
arjun-guvi Apr 7, 2025
b7ac42b
feat: completed-challenege-21
arjun-guvi Apr 7, 2025
f4ba5a8
feat: completed-challenge-22
arjun-guvi Apr 8, 2025
e0dbd1f
feat: challenge-23-complted
arjun-guvi Apr 9, 2025
6fb240d
feat: completed-challenege-24
arjun-guvi Apr 10, 2025
980cfdc
feat: completed-challenge-25
arjun-guvi Apr 11, 2025
b6cca91
feat: completed-challenege-26
arjun-guvi Apr 12, 2025
1fe6a55
feat: completed-challenege-27
arjun-guvi Apr 13, 2025
25ca532
feat: completed-challenege-28
arjun-guvi Apr 14, 2025
aa4ea96
feat: challenge-29-completed
arjun-guvi Apr 15, 2025
5278980
feat: completed-challenge-30
arjun-guvi Apr 16, 2025
dc06331
feat: completed-challenege-31
arjun-guvi Apr 17, 2025
703bcc4
feat: completed-challenege-32
arjun-guvi Apr 18, 2025
e321a03
feat: completed-challenge-33
arjun-guvi Apr 19, 2025
d239231
feat: completed-challenege-34
arjun-guvi Apr 20, 2025
4cd7610
feat: completed-challenge-35
arjun-guvi Apr 21, 2025
503b776
added-code
arjun-guvi Apr 21, 2025
fa70fc5
feat: completed-challenege-36
arjun-guvi Apr 22, 2025
e2801c2
completed-challenge-37
arjun-guvi Apr 23, 2025
131ee50
completed challenge 38
arjun-guvi Apr 24, 2025
2be24aa
feat: challenge-40-completed
arjun-guvi Apr 27, 2025
bbabb12
feat: challenge-41-completed
arjun-guvi Apr 27, 2025
0d4438f
feat: completed-challenege-42
arjun-guvi Apr 28, 2025
fd9f626
feat: completed-challenege-43
arjun-guvi Apr 29, 2025
e32cb39
feat: completed-challenge-44
arjun-guvi Apr 30, 2025
8364fb1
feat: completed-challenege-45
arjun-guvi May 1, 2025
ca52058
feat: completed-challenge-46
arjun-guvi May 2, 2025
1ffacd3
feat: completed-challenege-47
arjun-guvi May 3, 2025
4d00231
feat: completed-chalenege-48
arjun-guvi May 4, 2025
a9742e6
feat: completed-challenge-49
arjun-guvi May 5, 2025
f307f95
feat: challenege-50-completed
arjun-guvi May 6, 2025
29e0862
feat: completed-challenege-51
arjun-guvi May 7, 2025
e46173c
feat: completed-challenege-52
arjun-guvi May 8, 2025
7111a3b
feat: challenge-53-completed
arjun-guvi May 10, 2025
75c017b
feat: completed-challenge-54
arjun-guvi May 10, 2025
2c45328
feat: completed-challenge-55
arjun-guvi May 12, 2025
f5a6ee9
feat: completed-challenge-57
arjun-guvi May 13, 2025
09734d5
feat: completed-challenge-58
arjun-guvi May 14, 2025
bbe7a22
feat: completed-challenege-59
arjun-guvi May 15, 2025
2919e9c
feat: completed-challenge-60
arjun-guvi May 16, 2025
917eed6
feat: completed-challenge-61
arjun-guvi May 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions challenege-13/number-1-bits.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
class Solution:
def hammingWeight(self, n: int) -> int:
binn = []
while n > 0 :
bit = n % 2
binn.append(str(bit))
n //=2
binn.reverse()
s = "".join(binn)
ans = 0
for i in s:
if i == "1":
ans +=1
return ans
18 changes: 18 additions & 0 deletions challenege-20/longest-common-subseqence.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
class Solution:
def longestCommonSubsequence(self, text1: str, text2: str) -> int:
memo = {}

def dfs(i, j):
if i == len(text1) or j == len(text2):
return 0
if (i, j) in memo:
return memo[(i, j)]

if text1[i] == text2[j]:
memo[(i, j)] = 1 + dfs(i + 1, j + 1)
else:
memo[(i, j)] = max(dfs(i + 1, j), dfs(i, j + 1))

return memo[(i, j)]

return dfs(0, 0)
10 changes: 10 additions & 0 deletions challenege-22/combination-sum-IV.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
class Solution:
def combinationSum4(self, nums: List[int], target: int) -> int:
dp = [0] * (target + 1)
dp[0] = 1
for currentSum in range(1, target + 1):
for numIndex in range(0, len(nums)):
currentNum = nums[numIndex]
if currentSum - currentNum >= 0:
dp[currentSum] += dp[currentSum - currentNum]
return dp[target]
19 changes: 19 additions & 0 deletions challenege-23/house-robber.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
class Solution:
def rob(self, nums: List[int]) -> int:
dp = [-1] * (len(nums)+1)
def helper (nums , ind):
if ind == 0:
return nums[0]
if ind < 0:
return 0
if dp[ind] == -1:
pick = nums[ind] + helper(nums , ind-2)
notPick = 0 + helper(nums,ind-1)
dp[ind] = max(pick ,notPick)
return dp[ind]
return helper(nums,len(nums)-1)





11 changes: 11 additions & 0 deletions challenege-24/house-robber-2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
class Solution:
def rob(self, nums: List[int]) -> int:

def helper(ls):
temp , prevMax = 0 , 0
for n in ls:
newMax = max(temp+n,prevMax)
temp = prevMax
prevMax = newMax
return prevMax
return max(nums[0] , helper(nums[1:]) , helper(nums[:-1]))
7 changes: 7 additions & 0 deletions challenege-27/jump-game.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
class Solution:
def canJump(self, nums: List[int]) -> bool:
g = len(nums) -1
for i in range(len(nums)-1,-1,-1):
if i+nums[i] >= g:
g = i
return True if g==0 else False
23 changes: 23 additions & 0 deletions challenege-28/clone-graph.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
"""
# Definition for a Node.
class Node:
def __init__(self, val = 0, neighbors = None):
self.val = val
self.neighbors = neighbors if neighbors is not None else []
"""

from typing import Optional
class Solution:
def cloneGraph(self, node: Optional['Node']) -> Optional['Node']:
hm = {}
def clone(node):
if node in hm:
return hm[node]
copy = Node(node.val)
hm[node] = copy
for n in node.neighbors:
copy.neighbors.append(clone(n))
return copy
return clone(node) if node else None


23 changes: 23 additions & 0 deletions challenege-31/number-of-islands.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
class Solution:
def numIslands(self, grid: List[List[str]]) -> int:
directions = [[1, 0], [-1, 0], [0, 1], [0, -1]]
ROWS, COLS = len(grid), len(grid[0])
islands = 0

def dfs(r, c):
if (r < 0 or c < 0 or r >= ROWS or
c >= COLS or grid[r][c] == "0"
):
return

grid[r][c] = "0"
for dr, dc in directions:
dfs(r + dr, c + dc)

for r in range(ROWS):
for c in range(COLS):
if grid[r][c] == "1":
dfs(r, c)
islands += 1

return islands
20 changes: 20 additions & 0 deletions challenege-32/longest-consective-sequence.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import java.util.*;
class Solution {
public int longestConsecutive(int[] nums) {
int l = 0;
HashSet<Integer> hs = new HashSet<Integer>();
for (int n: nums){
hs.add(n);
}
for (int n :hs){
if(!hs.contains(n-1)){
int t = 0;
while (hs.contains(n + t)) {
t++;
}
l = Math.max(t, l);
}
}
return l;
}
}
13 changes: 13 additions & 0 deletions challenege-33/FInd-building-where-alice-and-bob-meet.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
class Solution:
def leftmostBuildingQueries(self, h: List[int], q: List[List[int]]) -> List[int]:
res = [-1] * len(q)
for i,k in enumerate(q):
l,r = sorted(k)
if l == r or h[l] < h[r]:
res[i] = r
continue
for j in range(r+1,len(h)):
if h[j] > max(h[l],h[r]):
res[i] = j
break
return res
14 changes: 14 additions & 0 deletions challenege-38/non-overlapping-intervals.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
class Solution:
def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:
intervals.sort()

res = 0
prev = intervals[0][1]
for s,e in intervals[1:]:
if s >= prev:
prev = e
else:
res+=1
prev = min(prev,e)
return res

19 changes: 19 additions & 0 deletions challenege-40/meeting-rooms-2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
"""
Definition of Interval:
class Interval(object):
def __init__(self, start, end):
self.start = start
self.end = end
"""

class Solution:
def minMeetingRooms(self, intervals: List[Interval]) -> int:
intervals.sort(key=lambda x: x.start)
min_heap = []

for interval in intervals:
if min_heap and min_heap[0] <= interval.start:
heapq.heappop(min_heap)
heapq.heappush(min_heap, interval.end)

return len(min_heap)
27 changes: 27 additions & 0 deletions challenege-42/detect-cycle-in-linked-list.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/**
* Definition for singly-linked list.
* class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public boolean hasCycle(ListNode head) {
if(head==null){
return false;
}
ListNode slow = head, fast = head.next;
while(fast!=null && fast.next!=null){
if(slow == fast){
return true;
}
slow = slow.next;
fast = fast.next.next;
}
return false;
}
}
18 changes: 18 additions & 0 deletions challenege-43/merge-two-sorted-list.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next

class Solution:
def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:
if list1 is None:
return list2
if list2 is None:
return list1
if list1.val <= list2.val:
list1.next = self.mergeTwoLists(list1.next, list2)
return list1
else:
list2.next = self.mergeTwoLists(list1, list2.next)
return list2
20 changes: 20 additions & 0 deletions challenege-45/remove-nth-node-from-end-of-list.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next

class Solution:
def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:
nodes = []
cur = head
while cur:
nodes.append(cur)
cur = cur.next

removeIndex = len(nodes) - n
if removeIndex == 0:
return head.next

nodes[removeIndex - 1].next = nodes[removeIndex].next
return head
27 changes: 27 additions & 0 deletions challenege-46/reorder-list.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next

class Solution:
def reorderList(self, head: Optional[ListNode]) -> None:
slow, fast = head, head.next
while fast and fast.next:
slow = slow.next
fast = fast.next.next

second = slow.next
prev = slow.next = None
while second:
tmp = second.next
second.next = prev
prev = second
second = tmp

first, second = head, prev
while second:
tmp1, tmp2 = first.next, second.next
first.next = second
second.next = tmp1
first, second = tmp1, tmp2
16 changes: 16 additions & 0 deletions challenege-47/set-zero.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
class Solution:
def setZeroes(self, matrix: List[List[int]]) -> None:
ROWS, COLS = len(matrix), len(matrix[0])
mark = [[matrix[r][c] for c in range(COLS)] for r in range(ROWS)]

for r in range(ROWS):
for c in range(COLS):
if matrix[r][c] == 0:
for col in range(COLS):
mark[r][col] = 0
for row in range(ROWS):
mark[row][c] = 0

for r in range(ROWS):
for c in range(COLS):
matrix[r][c] = mark[r][c]
23 changes: 23 additions & 0 deletions challenege-48/spiral-matrix.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
class Solution:
def spiralOrder(self, matrix: List[List[int]]) -> List[int]:
res = []
left, right = 0, len(matrix[0])
top, bottom = 0, len(matrix)

while left < right and top < bottom:
for i in range(left, right):
res.append(matrix[top][i])
top += 1
for i in range(top, bottom):
res.append(matrix[i][right - 1])
right -= 1
if not (left < right and top < bottom):
break
for i in range(right - 1, left - 1, -1):
res.append(matrix[bottom - 1][i])
bottom -= 1
for i in range(bottom - 1, top - 1, -1):
res.append(matrix[i][left])
left += 1

return res
25 changes: 25 additions & 0 deletions challenege-50/word-search.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
class Solution:
def exist(self, board: List[List[str]], word: str) -> bool:
ROWS, COLS = len(board), len(board[0])
visited = [[False for _ in range(COLS)] for _ in range(ROWS)]

def dfs(r, c, i):
if i == len(word):
return True
if (r < 0 or c < 0 or r >= ROWS or c >= COLS or
word[i] != board[r][c] or visited[r][c]):
return False

visited[r][c] = True
res = (dfs(r + 1, c, i + 1) or
dfs(r - 1, c, i + 1) or
dfs(r, c + 1, i + 1) or
dfs(r, c - 1, i + 1))
visited[r][c] = False
return res

for r in range(ROWS):
for c in range(COLS):
if dfs(r, c, 0):
return True
return False
12 changes: 12 additions & 0 deletions challenege-51/longest-substring-without-repeating-character.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
charset = set()
l = 0
res = 0
for r in range(len(s)):
while s[r] in charset:
charset.remove(s[l])
l+=1
charset.add(s[r])
res = max(res, r-l + 1)
return res
Loading