java编程题刷题总结

在这里插入图片描述
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;
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值