Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Basic algorithms and template #454

Merged
merged 4 commits into from
Jun 16, 2021
Merged
Changes from all commits
Commits
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
7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -37,14 +37,13 @@
- [冒泡排序](./basic/sorting/BubbleSort/README.md)
- [插入排序](./basic/sorting/InsertionSort/README.md)
- [选择排序](./basic/sorting/SelectionSort/README.md)
- [归并排序](./basic/sorting/MergeSort/README.md)
- [快速排序](./basic/sorting/QuickSort/README.md)
- [归并排序(算法模板)](./basic/sorting/MergeSort/README.md)
- [快速排序(算法模板)](./basic/sorting/QuickSort/README.md)
- [希尔排序](./basic/sorting/ShellSort/README.md)

### 查找算法

- [二分查找](./basic/searching/BinarySearch/README.md)
- [二分查找 II](./basic/searching/BinarySearch-II/README.md)
- [二分查找(算法模板)](./basic/searching/BinarySearch/README.md)

## 高频考题

7 changes: 3 additions & 4 deletions README_EN.md
Original file line number Diff line number Diff line change
@@ -37,14 +37,13 @@ Complete solutions to [LeetCode](https://leetcode-cn.com/problemset/all/), [LCOF
- [Bubble Sort](./basic/sorting/BubbleSort/README.md)
- [Insertion Sort](./basic/sorting/InsertionSort/README.md)
- [Selection Sort](./basic/sorting/SelectionSort/README.md)
- [Merge Sort](./basic/sorting/MergeSort/README.md)
- [Quick Sort](./basic/sorting/QuickSort/README.md)
- [Merge Sort(Algorithm Template)](./basic/sorting/MergeSort/README.md)
- [Quick Sort(Algorithm Template)](./basic/sorting/QuickSort/README.md)
- [Shell Sort](./basic/sorting/ShellSort/README.md)

### Searching

- [Binary Search](./basic/searching/BinarySearch/README.md)
- [Binary Search II](./basic/searching/BinarySearch-II/README.md)
- [Binary Search(Algorithm Template)](./basic/searching/BinarySearch/README.md)

## High Frequency Interview Questions

1 change: 0 additions & 1 deletion basic/README.md
Original file line number Diff line number Diff line change
@@ -11,4 +11,3 @@
## 查找算法

- [二分查找](./searching/BinarySearch/README.md)
- [二分查找 II](./searching/BinarySearch-II/README.md)
1 change: 0 additions & 1 deletion basic/README_EN.md
Original file line number Diff line number Diff line change
@@ -12,4 +12,3 @@
## Searching

- [Binary Search](./searching/BinarySearch/README.md)
- [Binary Search II](./searching/BinarySearch-II/README.md)
89 changes: 0 additions & 89 deletions basic/searching/BinarySearch-II/BinarySearch.java

This file was deleted.

129 changes: 0 additions & 129 deletions basic/searching/BinarySearch-II/README.md

This file was deleted.

64 changes: 0 additions & 64 deletions basic/searching/BinarySearch/BinarySearch.java

This file was deleted.

40 changes: 40 additions & 0 deletions basic/searching/BinarySearch/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(), q = sc.nextInt();
int[] nums = new int[n];
for (int i = 0; i < n; ++i) {
nums[i] = sc.nextInt();
}
while (q-- > 0) {
int x = sc.nextInt();
int left = 0, right = n - 1;
while (left < right) {
int mid = (left + right) >> 1;
if (nums[mid] >= x) {
right = mid;
} else {
left = mid + 1;
}
}
if (nums[left] != x) {
System.out.println("-1 -1");
} else {
int t = left;
left = 0;
right = n - 1;
while (left < right) {
int mid = (left + right + 1) >> 1;
if (nums[mid] <= x) {
left = mid;
} else {
right = mid - 1;
}
}
System.out.printf("%d %d\n", t, left);
}
}
}
}
24 changes: 24 additions & 0 deletions basic/searching/BinarySearch/Main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
n, q = map(int, input().split())
nums = list(map(int, input().split()))

for _ in range(q):
x = int(input())
left, right = 0, n - 1
while left < right:
mid = (left + right) >> 1
if nums[mid] >= x:
right = mid
else:
left = mid + 1
if nums[left] != x:
print('-1 -1')
else:
t = left
left, right = 0, n - 1
while left < right:
mid = (left + right + 1) >> 1
if nums[mid] <= x:
left = mid
else:
right = mid - 1
print(f'{t} {left}')
Loading