1、最大公约数
package cn.com.renren;
import java.util.Scanner;
public class Main1 {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
sc.nextLine();
int m = sc.nextInt();
int sum = 0;
int i = 1;
for(i=1;i<=n;i++){
sum += i*5;
if(sum>240-m){
break;
}
}
System.out.println(i-1);
}
}
}
2、边界问题
package cn.com.renren;
import java.util.Scanner;
public class Main2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
sc.nextLine();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
int result = 0;
if (n == 1) {
result = arr[0];
} else if (n == 2) {
result = maxCommonDivisor(arr[0], arr[1]);
} else {
result = maxCommonDivisor(arr[0], arr[1]);
for (int i = 2; i < n; i++) {
result = maxCommonDivisor(result, arr[i]);
}
}
System.out.println(result);
}
}
private static int maxCommonDivisor(int m, int n) {
if (m < n) {
int temp = m;
m = n;
n = temp;
}
if (m % n == 0) {
return n;
} else {
return maxCommonDivisor(n, m % n);
}
}
}
3、注意时间复杂度,全求和
package cn.com.renren;
import java.util.Arrays;
import java.util.Scanner;
public class Main4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
sc.nextLine();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
int result = 0;
// if (n != 1) {
// for (int i = 1; i < n; i++) {
// int[] arr0 = Arrays.copyOfRange(arr, 0, i);//此方法 每次都会遍历一次数组,且从第一个开始加,空间复杂度比较高,不合适
// int[] arr1 = Arrays.copyOfRange(arr, i, arr.length);
// if (sumArray(arr0) == sumArray(arr1)) {
// result++;
// }
// }
// }
int left = 0;
int right = 0;
if(n!=1){
for(int i =0;i<n-1;i++){
left += arr[i];
if(i==0){
for(int j=n-1;j>i;j--){
right +=arr[j];
}
}else{
right -= arr[i];
}
if(right==left){
result++;
}
}
}
System.out.println(result);
}
}
public static int sumArray(int[] arr) {
int sum = 0;
for (int i : arr) {
sum += i;
}
return sum;
}
}