diff --git a/.obsidian/app.sync-conflict-20220615-121016-T44CT3O.json b/.obsidian/app.sync-conflict-20220615-121016-T44CT3O.json new file mode 100644 index 0000000..ae1e888 --- /dev/null +++ b/.obsidian/app.sync-conflict-20220615-121016-T44CT3O.json @@ -0,0 +1,16 @@ +{ + "legacyEditor": false, + "livePreview": false, + "promptDelete": false, + "showLineNumber": true, + "spellcheck": true, + "tabSize": 2, + "vimMode": true, + "foldHeading": true, + "alwaysUpdateLinks": true, + "showUnsupportedFiles": true, + "attachmentFolderPath": "files", + "defaultViewMode": "preview", + "fileSortOrder": "byModifiedTime", + "showFrontmatter": true +} \ No newline at end of file diff --git a/.obsidian/appearance.sync-conflict-20220615-121014-T44CT3O.json b/.obsidian/appearance.sync-conflict-20220615-121014-T44CT3O.json new file mode 100644 index 0000000..1353cee --- /dev/null +++ b/.obsidian/appearance.sync-conflict-20220615-121014-T44CT3O.json @@ -0,0 +1,12 @@ +{ + "theme": "obsidian", + "translucency": true, + "cssTheme": "Deep Work", + "interfaceFontFamily": "IBM Plex Sans", + "textFontFamily": "IBM Plex Mono,monospace", + "monospaceFontFamily": "IBM Plex Mono", + "baseFontSize": 18, + "enabledCssSnippets": [ + "expander" + ] +} \ No newline at end of file diff --git a/.obsidian/community-plugins.sync-conflict-20220615-121016-T44CT3O.json b/.obsidian/community-plugins.sync-conflict-20220615-121016-T44CT3O.json new file mode 100644 index 0000000..007598e --- /dev/null +++ b/.obsidian/community-plugins.sync-conflict-20220615-121016-T44CT3O.json @@ -0,0 +1,3 @@ +[ + "mrj-text-expand" +] \ No newline at end of file diff --git a/.obsidian/workspace.sync-conflict-20220615-121017-T44CT3O b/.obsidian/workspace.sync-conflict-20220615-121017-T44CT3O new file mode 100644 index 0000000..fa926fb --- /dev/null +++ b/.obsidian/workspace.sync-conflict-20220615-121017-T44CT3O @@ -0,0 +1,129 @@ +{ + "main": { + "id": "9856b59c373440ec", + "type": "split", + "children": [ + { + "id": "cf977333cff98c94", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "CS notes/CS-index.md", + "mode": "preview", + "source": true + } + } + } + ], + "direction": "vertical" + }, + "left": { + "id": "ec0d2c09e6c8cf54", + "type": "mobile-drawer", + "children": [ + { + "id": "b60a95a77173ba28", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": {} + } + }, + { + "id": "08f82c725da45d34", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + } + } + }, + { + "id": "227e9f0b00b93325", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true + } + } + }, + { + "id": "55b0fba62eb729c8", + "type": "leaf", + "state": { + "type": "starred", + "state": {} + } + } + ], + "currentTab": 0 + }, + "right": { + "id": "74d980b2ec8d8986", + "type": "mobile-drawer", + "children": [ + { + "id": "54e894c614eacdfe", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "CS notes/CS-index.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + } + } + }, + { + "id": "7dd7c85444e7bc42", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "CS notes/CS-index.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + } + } + }, + { + "id": "4314c8077e8d8c76", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "CS notes/CS-index.md" + } + } + } + ], + "currentTab": 0 + }, + "active": "cf977333cff98c94", + "lastOpenFiles": [ + "CS notes/CS-index.md", + "CS notes/pages/Leetcode Search-a-2D-Matrix.md", + "CS notes/pages/Binary Search Algorithm.md", + "CS notes/pages/Leetcode Reshape-The-Matrix.md", + "Index.md", + "Wiki/Wiki-Index.md", + "Wiki/Learnings.md", + "Wiki/Minecraft.md", + "Wiki/Software Index.md", + "CS notes/pages/Leetcode Pascal's-Triangle.md" + ] +} \ No newline at end of file diff --git a/CS notes/pages/Binary Search Algorithm.sync-conflict-20220615-121016-T44CT3O.md b/CS notes/pages/Binary Search Algorithm.sync-conflict-20220615-121016-T44CT3O.md new file mode 100644 index 0000000..b3286bb --- /dev/null +++ b/CS notes/pages/Binary Search Algorithm.sync-conflict-20220615-121016-T44CT3O.md @@ -0,0 +1,79 @@ +# Binary Search Algorithm + +#### 2022-06-13 15:46 + +___ +##### Algorithms: +#algorithm #binary_search +##### Data structures: +#DS #array #vector #set #multiset +##### Difficulty: +#CS_analysis #difficulty-easy +##### Related problems: +```expander +tag:#coding_problem tag:#binary_search -tag:#template_remove_me +``` + +- [[Leetcode Search-a-2D-Matrix]] + + +##### Links: +- [g4g for manual implementation](https://www.geeksforgeeks.org/binary-search/) +- [cppreference, find](https://en.cppreference.com/w/cpp/container/set/find) +___ + +### How to implement Binary search? + +#### a: Use cpp's library +Use cpp's set's [find](https://en.cppreference.com/w/cpp/container/set/find) +or [equal_range](https://en.cppreference.com/w/cpp/container/multiset/equal_range) + +#### b: Manual +1. Use a while loop: +[[Leetcode Search-a-2D-Matrix#Solution]] + +2. Use recursion: +from g4g: +```cpp +// C++ program to implement recursive Binary Search +#include +using namespace std; + +// A recursive binary search function. It returns +// location of x in given array arr[l..r] is present, +// otherwise -1 +int binarySearch(int arr[], int l, int r, int x) { + if (r >= l) { + int mid = l + (r - l) / 2; + + // If the element is present at the middle + // itself + if (arr[mid] == x) + return mid; + + // If element is smaller than mid, then + // it can only be present in left subarray + if (arr[mid] > x) + return binarySearch(arr, l, mid - 1, x); + + // Else the element can only be present + // in right subarray + return binarySearch(arr, mid + 1, r, x); + } + + // We reach here when element is not + // present in array + return -1; +} + +int main(void) { + int arr[] = {2, 3, 4, 10, 40}; + int x = 10; + int n = sizeof(arr) / sizeof(arr[0]); + int result = binarySearch(arr, 0, n - 1, x); + (result == -1) ? cout << "Element is not present in array" + : cout << "Element is present at index " << result; + return 0; +} + +``` \ No newline at end of file diff --git a/CS notes/pages/Leetcode Remove-Linked-List-Elements.md b/CS notes/pages/Leetcode Remove-Linked-List-Elements.md new file mode 100644 index 0000000..5353079 --- /dev/null +++ b/CS notes/pages/Leetcode Remove-Linked-List-Elements.md @@ -0,0 +1,35 @@ +# Leetcode Remove-Linked-List-Elements + +#### 2022-06-15 21:50 + +--- +##### Algorithms: +#algorithm +##### Data structures: +#DS +##### Difficulty: +# #coding_problem #difficulty-easy +##### Related topics: +```expander +tag:# +``` + + + +##### Links: +- [Link to problem]() +___ +### Problem + +#### Examples +```markdown +``` + +#### Constraints + +### Thoughts + +> [!summary] +> This is a #template_remove_me + +### Solution