网易笔试
第三题 回文... 70% 求解惑...
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
int n=in.nextInt();
int[] nums=new int[n];
for(int i=0;i<n;i++){
nums[i]=in.nextInt();
}
System.out.println(circle(nums,n));
}
in.close();
}
// public boolean iscircle(int[] nums,int n){
// int j=0;
// while(j<=(n/2)-1&&nums[j]==nums[n-j-1])
// j++;
// if(j==n/2)
// return true;
// else
// return false;
// }
public static int circle(int[] nums,int n){
int count=0;
List<Integer> list=new ArrayList<Integer>();
int i=0;
for (int num:nums){
list.add(i,num);
i++;
}
for(int j=0;j<=(n+1)/2-1;j++){
if(list.get(j)==list.get(n-j-1))
continue;
else{
int a=list.get(j)+list.get(j+1);
list.set(j,a);
list.remove(j+1);
n--;
count++;
j--;
}
}
return count;
}
}
第二题 暗黑 80%...
n=2(n-2)+(n-1) n-1:....CA n可以在n-1尾部2选1 还有一种情况
n-1;......AA 那n尾部3选一 此时n-1的情况和n-2相同 综合起来就是最前面的式子。不过只通过80 懒得思考了
直接交卷
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
int n=in.nextInt();
int res=caculate(n);
System.out.println(res);
}
in.close();
}
private static int caculate(int n) {
int res=0;
if(n<=0)
return 0;
if(n==1){
return 3;
}
if(n==2)
return 9;
res=2*caculate(n-1)+caculate(n-2);
return res;
}
}
第一题 翻转 100
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
String x = String.valueOf(in.nextInt());
StringBuffer a=new StringBuffer(x);
a=a.reverse();
String y = String.valueOf(in.nextInt());
StringBuffer b=new StringBuffer(y);
b=b.reverse();
int c=Integer.parseInt(String.valueOf(a))+Integer.parseInt(String.valueOf(b));
StringBuffer d=new StringBuffer(String.valueOf(c));
System.out.println(Integer.parseInt(String.valueOf(d.reverse())));
}
}
}
查看21道真题和解析

