java代码描述
我现在最缺的是什么呢?
算法题第一是算法不会,比如DP,刚掌握还需要继续夯实的图论
第二是将思想转化为程序的能力
下面这道题目,大佬,比如y总,1分种读题,2分不到的时间搞定代码,因为这是简单的暴力枚举,所以考的就是我程序转化的能力
我这方面的能力确实需要多刷算法题练练,或者在学算法基础的时候就一定尝试去写写代码.
不要放弃任何一个练习的机会!!!
我第一次写的代码,10个样例通过了1个
import java.util.*;
public class Main{
static int N = 1010,M = 15,n,m;
static int[][] a = new int[N][M];
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
n = sc.nextInt(); m = sc.nextInt();
for(int i = 0 ; i < n ; i++)
for(int j = 0 ; j < m ;j++)
a[i][j] = sc.nextInt();
//------------------------------------------------------
int re = 0;
boolean flag = false;
int sum ,lowga = 1000010;
for(int i = 0 ; i < n ; i++){//1
lowga = 1000010;re = 0;
for(int i2 = 0 ; i2 < n ; i2 ++){//1
if(i == i2) continue;
sum = 0; flag = false;
for(int j = 0 ; j < m ; j++){
sum += a[i2][j];
if(a[i][j] >= a[i2][j]){//一票否决
flag = true;//就因为这个,即便它之前有值了,还是一票否决了!!!
break;
}
}//都过的话,找和最小的.
if(!flag){
int tmp = lowga ;
lowga = Math.min(lowga,sum);
if(tmp != lowga) re = i2 + 1;
}
}
System.out.println(re);
}
}
}
看了y总的视频代码,然后自己简单地修改
import java.util.*;
public class Main{
static int N = 1010,M = 15,n,m;
static int[][] a = new int[N][M];
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
n = sc.nextInt(); m = sc.nextInt();
for(int i = 0 ; i < n ; i++)
for(int j = 0 ; j < m ;j++)
a[i][j] = sc.nextInt();
//------------------------------------------------------
for(int i = 0 ; i < n ; i++){//1
int re = 0;
for(int i2 = 0 ; i2 < n ; i2 ++){//1
boolean flag = true;
if(i == i2) continue;
for(int j = 0 ; j < m ; j++){
if(a[i][j] >= a[i2][j]){//一票否决
flag = false;//就因为这个,即便它之前有值了,还是一票否决了!!!
break;
}
}//都过的话,找和最小的.
if(flag){
re = i2 + 1;
break;
}
}
System.out.println(re);
}
}
}