网易互娱笔试题
第一题只能过85...:
public static void main(String[] args) { Scanner in = new Scanner(System.in); long n1 = in.nextLong(); long n2 = in.nextLong(); long min = getMin(n1,n2); long max = getMax(n1,n2); System.out.print(min+" "); System.out.println(max); } private static long getMax(long n1, long n2) { if (n1 == n2) return n1; if (n1 < n2) { long tmp = n1; n1 = n2; n2 = tmp; } long res = n1; long i = 1; while (res % n2 != 0) { res = n1 * ++i; } return res; } private static long getMin(long n1, long n2) { if (n2 == 0) return n1; return getMin(n2,n1%n2); }
第二题100:
public void removeDuplicates(ListNode head) { // 在这里编写代码 int count = 1; ListNode last = head; ListNode cur = head.next; while (cur != null) { if (cur.val == last.val) { count++; if (count == 3) { ListNode next = cur.next; cur = next; last.next = next; count = 2; } else { ListNode next = cur.next; last = cur; cur = next; } } else { count = 1; ListNode next = cur.next; last = cur; cur = next; } } }
第四题可以过75:
public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int m = in.nextInt(); String[][] arr = new String[n][m]; for (int i = 0; i < n; i++) { String str = in.next(); for (int j = 0; j < str.length(); j++) { arr[i][j] = str.charAt(j)+""; } } if (n > m) { int tmp = n; n = m; m = tmp; } int maxBian = n; //i代表边长,从最大边长开始找,逐渐缩小要找的正方形的长度 for (int i = maxBian; i >=1 ; i--) { //jk代表选定的第一个目标 for (int j = 0; j <= n-i; j++) { for (int k = 0; k <= m-i; k++) { //记录选定的字符 String begin = arr[j][k]; //l,o代表要寻找的与选定的字符相同的字符的坐标 //从jk的下一个位置开始往后搜索 for (int l = j; l <= n-i; l++) { int o = k+1; if (l != j) o =0; a:for (; o <= m-i; o++) { //此处找到与目标字符相同的字符 if (arr[l][o].equals(begin)) { //接下来判断这个字符和目标字符是否按照规定的长度形成相同的字符串矩形 int width = 0; int height = 0; int q=j,w=k,e=l,r=o; while (width < i) { while (height < i) { if (!arr[q][w].equals(arr[e][r])) { //只要发现没有对应上就跳出并继续寻找下一个可能的正方形 continue a; } else { w++; r++; } height++; } height = 0; w=k; r=o; width++; q++; e++; } System.out.println(i); System.out.println((j+1)+" "+(k+1)); System.out.println((l+1)+" "+(o+1)); return; } } } } } } System.out.println(0); }