Practice

/*
1. 给定一个整型数组,数组的长度为 N(N>k),
从数组中寻找一个连续的长度为 k 的 子数组,
要求该子数组的和最大。 同时将哪一组 打印一下 
Max 初始: 0~k-1 这些元素的和
循环   i:0~  n-k-1
Tmp = arr[i]+arr[i+1]… arr[i+k-1]
If(Tmp>max) 则max = Tmp
Index
*/
int[] arr = {1,2,3,7,4,5,6};
int k = 3;
int max = 0;//最大的子数组的和  
int idx = 0;//最大组的第一个元素的下标
//max初始值
for(int i=0;i<k;i++){
max += arr[i];
}

//遍历比较  有多少种子数组
for (int i = 0; i <= arr.length-k; i++) {
//计算 tmp=arr[i]+arr[i+1]… arr[i+k-1]
int tmp = 0;
for (int j = i; j < i+k; j++) {
tmp += arr[j];
}

if(tmp>max){
max=tmp;
idx = i;
}
}

System.out.println(max +"  "+idx);
/*
2. 给定两个长度一样的整型数组,
判断两个数组是否相同,
相同的原则是数组中的
每 一个相互对应的元素的“和值”相同,
“和值”是指元素对应的整数所有位的合,
例 如:a[0]的值是 1112,
b[0]的值是 23,则这两个元素“相同”。 


//求一个数的和值
int num = a[i]; //这样 原始a[i]的值还在
sum = 0
n = 0  位数
while(num>0){
sum += num%10 
num /=10;、
n++;
}

//一个循环 同时遍历两个数组
//tmp1= a[i]和值
// tmp2= b[i]和值
 
//判定 tmp1!=tmp2  
// ret = false
// break;
* */
int[] a = {112,3,4};
int[] b = {22,12,40};


boolean ret = true;
//一个循环 同时遍历两个数组
for (int i = 0; i < a.length; i++) {
//    tmp1= a[i]和值
int tmp1 = 0;
int num = a[i];
while(num>0){
tmp1 += num%10; 
num /=10;
}

//    tmp2= b[i]和值
int tmp2 = 0;
num = b[i];
while(num>0){
tmp2 += num%10; 
num /=10;
}

//    判定 tmp1 != tmp2
if (tmp1 != tmp2) {
ret = false;
break;
}

}

System.out.print(ret);

    String str = "Professor du comes from Korea";
    char[] arr2 = str.toCharArray();

}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值