10 2022 档案
摘要:package class02; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.Map; /** * Code03的变型 * 有一个数组arr,其中只有一种数
阅读全文
摘要:package class02; import java.util.HashMap; import java.util.HashSet; import java.util.Map; /** * 有一个数组arr,其中只有一种数出现了K次,其余所有的数都都出现了M次。 * K < M,M > 1。 *
阅读全文
摘要:package class02; /** * 在arr中,只有一种(两种)数字,出现了奇数次,其余的数都出现了偶数次。找出这一种(两种)出现了奇数次的数字。 */ public class Code02_EvenTimesOddTimes { public static void main(Stri
阅读全文
摘要:package class02; import java.util.Arrays; /** * 不借助第三个变量,交换两个数。(使用异或^) * 异或(^):相同为0,不同为1。 * 记为:无进位相加。 */ public class Code1_Swap { public static void
阅读全文
摘要:package class01; /** * 局部最小问题 * <p> * 对于一个数组,使用二分法的前提,一定是这个数组整体有序吗? * 答:不是。局部最小问题就是反例。 */ public class Code07_BSAwesome { public static int getLessInd
阅读全文
摘要:package class01; import java.util.Arrays; /** * 在arr上,返回小于等于targetNum的最右的位置。 * 如果没有则返回-1。 */ public class Code06_BSNearRight { public static int neare
阅读全文
摘要:package class01; import java.util.Arrays; /** * 在arr上,返回arr中大于等于targetNum的最左的位置。 * (如果有,就返回这个最左的索引。如果没有,可以返回-1。) * 使用了二分法。 */ public class Code05_BSNe
阅读全文
摘要:package class01; import java.util.Arrays; /** * 二分法 * 已知一个有序数组arr,和一个数字num。返回数组中是否含有这个数字。(使用二分法) * <p> * 常规二分法的时间复杂度,O(logN)。 * O(log2N),即log以2为底,N的对数
阅读全文
摘要:package class01; import java.util.Arrays; /** * 插入排序 * 概述:先将i指向第二个数(索引为1),将j指向i-1位置,如果j大于等于0,并且arr[j]>arr[j+1],将将arr[j]和arr[j+1]交换。j--。 */ public clas
阅读全文
摘要:package class01; import java.util.Arrays; /** * 冒泡排序 * 概述:每相邻的2个数比较,较大的数向后交换。排到最后一个位置时,它就是整个数组的最大值,第一轮结束。 * 继续从第0位置和第1位置的2个数比较。周而复始。 */ public class C
阅读全文
摘要:package class01; import java.util.Arrays; /** * 选择排序 * 概述:n个数,n次循环(10个数就是10次循环),每次循环找出本轮的最小值,和本轮的第一个位置的数,交换。周而复始。直至该乱序数组有序。 */ public class Code01_Sel
阅读全文