import java.util.Scanner;
class Solution {
public List addToArrayForm(int[] A, int K) {
Scanner input = new Scanner(System.in);
System.out.print("输入:A = “);
A = input.nextInt();
System.out.print(“输入:K = “);
K = input.nextInt();
if(A != []) {
将数组中的数提取出来拼成与数组顺序相同的数B,
}
int C = B + K;
将数字C中的数提取出来转换成与数字顺序相同的数组D,
System.out.println(“输出 :” + D);
System.out.print(“解释 :” + B);
System.out.print(”+” K );
System.out.print(”= " C);
}
}
2.
class Solution {
public int addDigits(int num) {
System.out.print("请输入数字: ");
int b = 0;
while(num!=0) {
b += num % 10;
num /= 10 ;
if (b>=10) {
num = b;
b = 0;
}
System.out.print("输出: " + b );
return b;
}
}
3.
3.
public class Solution {
// you need treat n as an unsigned value
public int reverseBits(int n) {
int ans = 0;
for(int i = 0; i < 32; i++) {
int bit = n&1;
n = n >> 1;
ans = (ans << 1) + bit;
}
return ans;
}
}
4.
思路;因为题中只是要求判断输入的数n是否为是4的幂次方;所以只要判断n%4是否为0;为0,输出true;否则false;
class Solution {
public boolean isPowerOfFour(int n) {
int i = 4;
boolean flag = true;
if(n % 4 == 0){
System.out.print(“输出: true”);
}else {
flag = false;
System.out.print(“输出: false”);
}
if(flag){
return true;
}else {
return false;
}
}
}
5.
思路;建立while循环拼接反转的单词,建立for循环先查找空格,找到空格查询空格角标i;int k =0;截取k到i的字符串arr,k=i,建立新的循环反转字符串arr;直到i=目标字符串的长度;第一个for循环结束,break;跳出while循环
class Solution {
public String reverseWords(String s) {
String arr = “”;
String a =" ";
int k = 0;
while(true){
for(int i = 0 ;i < s.length();i++){
if(s.charAt(i) = " “){
arr = s.substring(k,i);
k=i;
}
for(int j=arr.length()-1;j>-1;j–){
a = a + arr.charAt(j);
}
a = a +” ";
}
break;
}
return a;
}
}
6.
思路;建立for循环;int i=1;int k=1;i=k<num/2;i++&&k++
用if判断i*k==num;等于输出true,否则flase;
7.
思路;什么是这个题的最优解最大得分。比较大小;当有最大值最小值且最小值不为0时,最大值最小值减1,分加1;当最小值为0时;另外两值减1,分加1;当a,b,c,其中两值或3值为0时,游戏结束;
class Solution {
public int maximumScore(int a, int b, int c) {
int count=0;
//当a,b,c,其中两值或3值为0时,游戏结束;
while(!((a==0&&b==0)||(b==0&&c==0)||(a==0&&c==0)||(a==0&&b==0&&c==0))){
if(a==0||b==0||c==0){
//当最小值为0时;另外两值减1,分加1
if(a==0){
b--;
c--;
count++;
}else if(b==0){
a--;
c--;
count++;
}else if(c==0){
b--;
a--;
count++;
}
//当有最大值最小值且最小值不为0时,最大值最小值减1,分加1;
}else if((a<=b&&b<=c)||(c<=b&&b<=a)){
a--;
c--;
count++;
}else if((a<=c&&c<=b)||(b<=c&&c<=a)){
a--;
b--;
count++;
}else{
b--;
c--;
count++;
}
}
return count;
}
}
8.
思路;先算出所有的海拔高度,在比较选出最高海拔
海拔的高度等于前一项的海拔高度假上gain的海拔高度差
class Solution {
public int largestAltitude(int[] gain) {
int[] arr = new int[gain.length+1];
算出所有的海拔高度
for(int i =0;i<gain.length;i++){
int r = i +1;
海拔的高度等于前一项的海拔高度假上gain的海拔高度差
arr[r] = gain[i]+arr[i];
}
int max =0;
比较选出最高海拔
for(int a = 0;a<arr.length;a++){
if(max<arr[a]){
max = arr[a];
}
}
return max;
}
}