- 搜索插入位置,描述:给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner
sc = new Scanner(System.in);
System.out.println(“输入数组长度:”);
int n = sc.nextInt();
System.out.println(“输入数组:”);
int[] a = new int[n];
for (int i = 0; i < n; i++) {
a[i] = sc.nextInt();
}
System.out.println(“输入你要插入的数字:”);
int c=sc.nextInt();
insert(a,c);
}
public static void insert(int[] a,int c) {
for(int i=0;i<a.length;i++) {
if(a[i]==c) {
System.out.println(“此数存在,他的位置为”+i);
break;
}else {
if(a[i]>c) {
System.out.println(“插入后他的位置为”+i);
break;
}
}
}
}
}
- 两两交换链表中的节点
ListNode swapPairs(ListNode head) {
if (!head) return null;
if (!head->next) return head;
ListNode temp = head->next;
head->next = swapPairs(temp->next);
temp->next = head;
return temp;
}
- // 三个数的最大乘积给定一个整数数组,找到三个元素,使乘积最大,返回该积。
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner
sc=new Scanner(System.in);
System.out.println(“请输入数组的长度:”);
int n=sc.nextInt();
System.out.println(“请输入数组”);
int [] a=new int[n];
for(int i=0;i<n;i++) {
a[i]=sc.nextInt();
}
int max1=0;
int max2=0;
int max3=0;
for(int j=0;j<a.length;j++) {
if(a[j]>max1) {
max3=max2;
max2=max1;
max1=a[j];
}else if(a[j]>max2) {
max3=max2;
max2=a[j];
}else if(a[j]>max3){
max3=a[j];
}
}
int max=max3max2max1;
System.out.println(max);
}
}
135.镜像数字. 描述:一个镜像数字是指一个数字旋转180度以后和原来一样(倒着看)。例如,数字"69",“88”,和"818"都是镜像数字。
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner
sc=new Scanner(System.in);
System.out.println(“请输入数字”);
String
num=sc.nextLine();
System.out.println(isStrobogrammatic(num));
}
public static boolean isStrobogrammatic(String num) {
Map<Character, Character> map = new HashMap<>();
map.put(‘0’, ‘0’);
map.put(‘1’, ‘1’);
map.put(‘8’, ‘8’);
map.put(‘6’, ‘9’);
map.put(‘9’, ‘6’);
if (num.length() == 1) {
char c = num.charAt(0);
if(c==‘1’ || c==‘8’ ||c==‘0’) {
return true;
}else {
return false;
}
} else if (num.length() == 2 && num.charAt(0) == ‘0’) {
return false;
} else {
for (int i = num.length() - 1; i >= 0; i–) {
if (map.get(num.charAt(i)) == null) {
return false;
}
}
return true;
}
}
}
-
链表划分(描述:给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。你应该保留两部分内链表节点原有的相对顺序。
-
//找出字符串中的数字。
import java.util.Scanner;
public class Demo {
public static void main(String[] args){
Scanner
sc=new Scanner(System.in);
System.out.println(“输入一个字符串:”);
String
s=sc.nextLine();
for(int i=0;i<s.length();i++) {
if(s.charAt(i)>=‘0’&&s.charAt(i)<=‘9’) {
System.out.print(s.charAt(i));
}
}
}
}