Skip to content

Commit

Permalink
Merge pull request #11 from rajat19/practice
Browse files Browse the repository at this point in the history
Fix scripts
  • Loading branch information
rajat19 authored May 24, 2024
2 parents a4598a2 + 3dce261 commit c7bce47
Show file tree
Hide file tree
Showing 11 changed files with 105 additions and 6 deletions.
14 changes: 14 additions & 0 deletions _includes/code/find-minimum-in-rotated-sorted-array/solution.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
class Solution {
public int findMin(int[] nums) {
int l = 0, r = nums.length - 1;
while(l < r) {
int mid = l + (r-l)/2;
if (nums[r] < nums[mid]) {
l = mid+1;
} else {
r = mid;
}
}
return nums[l];
}
}
18 changes: 18 additions & 0 deletions _includes/code/subsets/solution.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
class Solution {
public:
vector<vector<int>> subsets(vector<int>& nums) {
vector<vector<int>> result;
vector<int> subset = {};
backtrack(nums, result, subset, 0);
return result;
}

void backtrack(vector<int>& nums, vector<vector<int>>& result, vector<int>& subset, int pos) {
result.push_back(subset);
for(int i=pos; i<nums.size(); i++) {
subset.push_back(nums[i]);
backtrack(nums, result, subset, i+1);
subset.pop_back();
}
}
};
2 changes: 1 addition & 1 deletion posts/_hard/basic-calculator.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ layout: post
author: Rajat Srivastava
title: Basic Calculator
topics: math string stack recursion
langs: java cpp py go
langs: java cpp py
tc: O(n)
sc: O(n)
leetid: 224
Expand Down
54 changes: 54 additions & 0 deletions posts/_medium/find-minimum-in-rotated-sorted-array.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
layout: post
author: Rajat Srivastava
title: Find Minimum in Rotated Sorted Array
topics: array binary-search
langs: java
tc: O(logn)
sc: O(1)
leetid: 153
companies:
---
Suppose an array of length `n` sorted in ascending order is **rotated** between `1` and `n` times. For example, the array `nums = [0,1,2,4,5,6,7]` might become:

* `[4,5,6,7,0,1,2]` if it was rotated `4` times.

* `[0,1,2,4,5,6,7]` if it was rotated `7` times.
Notice that **rotating** an array `[a[0], a[1], a[2], ..., a[n-1]]` 1 time results in the array `[a[n-1], a[0], a[1], a[2], ..., a[n-2]]`.
Given the sorted rotated array `nums` of **unique** elements, return *the minimum element of this array*.
You must write an algorithm that runs in `O(log n) time.`

---
## Test Cases
**Example 1:**
```
Input: nums = [3,4,5,1,2]
Output: 1
Explanation: The original array was [1,2,3,4,5] rotated 3 times.
```
**Example 2:**
```
Input: nums = [4,5,6,7,0,1,2]
Output: 0
Explanation: The original array was [0,1,2,4,5,6,7] and it was rotated 4 times.
```
**Example 3:**
```
Input: nums = [11,13,15,17]
Output: 11
Explanation: The original array was [11,13,15,17] and it was rotated 4 times.
```

**Constraints:**

* `n == nums.length`

* `1 <= n <= 5000`

* `-5000 <= nums[i] <= 5000`

* All the integers of `nums` are **unique**.

* `nums` is sorted and rotated between `1` and `n` times.

2 changes: 1 addition & 1 deletion posts/_medium/subsets.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ layout: post
author: Rajat Srivastava
title: Subsets
topics: array backtracking
langs: java
langs: java cpp
tc: O(n2<sup>n</sup>)
sc: O(n)
leetid: 78
Expand Down
5 changes: 5 additions & 0 deletions scripts/app/jekyll.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/usr/bin/env bash

# bundle config set --local path 'vendor/bundle'
# bundle install
bundle exec jekyll serve
File renamed without changes.
5 changes: 3 additions & 2 deletions scripts/leetcode.py → scripts/download/leetcode.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

class Leetcode:
def __init__(self, question: str, time_complexity: str, space_complexity: str, languages: str):
self.root_path = os.path.join(os.path.dirname(__file__), '..', '..')
self.question = question
self.time_complexity = time_complexity
self.space_complexity = space_complexity
Expand Down Expand Up @@ -95,15 +96,15 @@ def format_content(self, content):

def create_file(self, content, ext='md'):
difficulty_path = '_{}'.format(self.question_data['difficulty'].lower())
file_name = os.path.join('..', 'posts', difficulty_path, self.question + '.' + ext)
file_name = os.path.join(self.root_path, 'posts', difficulty_path, self.question + '.' + ext)
# print(file_name, content)
os.makedirs(os.path.dirname(file_name), exist_ok=True)
with open(file_name, 'w') as text_file:
text_file.write(content)
print(os.path.abspath(file_name))

def create_solution_files(self):
path = os.path.join('..', '_includes', 'code', self.question)
path = os.path.join(self.root_path, '_includes', 'code', self.question)
for lang in self.languages.split(' '):
file_name = os.path.join(path, 'solution.{}'.format(lang))
os.makedirs(os.path.dirname(file_name), exist_ok=True)
Expand Down
4 changes: 2 additions & 2 deletions scripts/question.sh → scripts/download/question.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env bash

BASEDIR=$(dirname "$0")
echo "$BASEDIR"
. ./leetenv/bin/activate && python -V

BASEDIR=$(dirname "$0")
python3 $BASEDIR/leetcode.py
File renamed without changes.
7 changes: 7 additions & 0 deletions scripts/venv_setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/usr/bin/env bash

brew install pyenv
pyenv install 3.12
virtualenv -p ~/.pyenv/versions/3.12.3/bin/python3.12 leetenv
. ./leetenv/bin/activate && python -V
pip3 install requests

0 comments on commit c7bce47

Please sign in to comment.