前言
兄弟們都會有心儀的offer!!!!!

一、服務器部署應用程式——典型背包問題
二、泛型實作快排
package bigo;
/**
* Created by IntelliJ IDEA.
*
* @Author:
* @Email:
* @Date: 2020/9/10
* @Time: 19:44
* @Version: 1.0
* @Description: Description
*/
import java.util.Arrays;
public class Second {
public static <T extends Comparable<? super T>> void quickSort(T[] arr, int startIndex, int endIndex) {
// 遞回結束條件:startIndex大等于endIndex的時候
if (startIndex >= endIndex) {
return;
}
// 得到基準元素位置
int pivotIndex = partition(arr, startIndex, endIndex);
// 根據基準元素,分成兩部分遞回排序
quickSort(arr, startIndex, pivotIndex - 1);
quickSort(arr, pivotIndex + 1, endIndex);
}
/**
* 分治(雙邊回圈法)
*
* @param arr 待交換的陣列
* @param startIndex 起始下標
* @param endIndex 結束下標
*/
private static <T extends Comparable<? super T>> int partition(T[] arr, int startIndex, int endIndex) {
// 取第一個位置的元素作為基準元素(也可以選擇隨機位置)
T pivot = arr[startIndex];
int left = startIndex;
int right = endIndex;
while (left != right) {
//控制right指標比較并左移
while (left < right && arr[right].compareTo(pivot) <= 0) {
right--;
}
//控制left指標比較并右移
while (left < right && arr[left].compareTo(pivot) > 0) {
left++;
}
//交換left和right指向的元素
if (left < right) {
T p = arr[left];
arr[left] = arr[right];
arr[right] = p;
}
}
//pivot和指標重合點交換
arr[startIndex] = arr[left];
arr[left] = pivot;
return left;
}
public static void main(String[] args) {
Integer[] arr = new Integer[]{1, 22, 34, 43, 33};
quickSort(arr, 0, arr.length - 1);
Double[] arr1 = new Double[]{1.0, 22.0, 34.1, 32.2, 0.7};
quickSort(arr1, 0, arr.length - 1);
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.toString(arr1));
}
}
三、字串鏡面反射
package bigo;
import java.util.ArrayList;
import java.util.List;
/**
* Created by IntelliJ IDEA.
*
* @Author:
* @Email:
* @Date: 2020/9/10
* @Time: 20:11
* @Version: 1.0
* @Description: Description
*/
public class Third {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("AB");
list.add("CD");
System.out.println(new Third().mirror(list));
}
List<String> mirror(List<String> data) {
List<String> ans = new ArrayList<>();
for (int i = 0; i < data.size(); i++) {
String temp = data.get(i);
StringBuilder str = new StringBuilder(temp);
ans.add(temp + str.reverse().toString());
}
for (int i = data.size() - 1; i >= 0; i--) {
ans.add(ans.get(i));
}
return ans;
}
}
CSDN認證博客專家
Java
大資料開發
CSDN簽約作者
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/11701.html
標籤:其他
上一篇:云架構在教育領域的應用有哪些
下一篇:最優控制問題
