Topic One:
public class Testclockwiseoutput {//print a matrix clockwise @Test public void Test () {int[][] num = new INT[100][100]; int n = 4; i NT count = 1; for (int i=0;i<n;i++) {for (int J =0;j<n;j++) { num[i][j]=count++; } } Output (num,0,n-1); } public void output (int[][] num,int Start,int end) {if (Start>=end | | end<=0) return, for (int i=start;i<=end;i++) { System.out.println (Num[start][i]); } for (int i=start+1;i<=end;i++) { System.out.println (Num[i][end]), } for (int i=end-1;i>=start;i--) { System.out.println (Num[end][i]); } for (int i=end-1;i>start;i--) { System.out.println (Num[i][start]); } Output (num,start+1,end-1);} }
Topic Two:
A sorted array and a number are given, and the sum of successive elements in the array is equal to the given number of sub-arrays.
A sorted array and a number are given, and the sum of contiguous elements in the array is equal to the number of substrings @Test public void Test () {int[] num = {1,2,2,3,4,5,6,7,8,9}; int sum = 7; Findsum (num,sum); } public void Findsum (int[] num,int sum) {int. left=0; int right=0; for (int i=0;i<num.length;i++) {int cursum = 0; left = i; right = i; while (cursum<sum) { cursum + = num[right++]; } if (Cursum==sum) {for (int j=left;j<right;j++) { System.out.print (num[j]+ ""); } System.out.println ();}}}
Topic Three:
The character array consists of all the strings @Test public void Test () {//char[] cs = {' A ', ' B ', ' C ', ' d ', ' e '}; Char[] cs = {' A ', ' B ', ' C '}; int length = Cs.length; Recursionswap (cs,0,length); } public void Swap (char[] cs,int index1,int index2) {Char temp = cs[index1]; CS[INDEX1]=CS[INDEX2]; cs[index2]=temp; } public void Recursionswap (char[] cs,int start,int length) {if (start>=length-1) { print (CS); return; } for ( int i=start;i<length;i++) { swap (cs,start,i); Recursionswap (cs,start+1,length); Swap (cs,start,i); } } public void print (char[] cs) {for (int i=0;i<cs.length;i++) { System.out.print (cs[i]); } System.out.println (); }
Topic Four:
The minimum number of array composition @Test public void Test () {int[] num={1,5,9,13,442,44,6,21,211}; Qsort (num,0,num.length-1); SYSTEM.OUT.PRINTLN (arrays.tostring (num)); } public void Qsort (int[] Num,int left,int right) {if (left<right) {int partition = partition (Num,left,right); Qsort (num,left,partition-1); Qsort (Num,partition+1,right); }} public int partition (int[] Num,int left,int right) {int partition = Num[left], while (Left<right) {while (num [Right]==partition | | Ismbigerthann (num,num[right],partition) && left<right) {right--; } swap (Num,left,right); while ((Num[left]==partition | | Ismbigerthann (num,partition,num[left)) && left<right) {left++; } swap (Num,left,right); } return left; } public void Swap (int[] num,int m,int n) {int temp = num[m]; Num[m]=num[n]; Num[n]=temp; } public boolean Ismbigerthann (int[] Num,int m,int N) {String num1 = string.valueof (m); String num2 = string.valueof (n); int temp1 = Integer.parseint (num1+num2); int temp2 = Integer.parseint (NUM2+NUM1); if (TEMP1>TEMP2) {return true; } else{return false; } }
Topic Five:
Sub-array Max and @Test public void Test () {int[] num = {1,-2,3,10,-4,7,2,-5};//int[] num = {1,-2,3,10,-4,10,2,-5}; SYSTEM.OUT.PRINTLN (Maxsum (num)); } public int maxsum (int[] num) {int cursum = 0, int curmaxsum = -99999999; int start = 0; int end = 0; for (int i=0;i<num. length;i++) {if (cursum<=0) { cursum = num[i]; start = i; } else{ cursum + = Num[i]; } if (cursum>curmaxsum) { curmaxsum = cursum; end = i; } } for (int i = start;i<=end;i++) { System.out.println (num[i]); } return curmaxsum; }
Topic Six:
public class Testminstack {//custom stack, min function gets the current minimum @Test public void Test () {Minstack ms = new Minstack (); Ms.push (5); System.out.println (Ms.min ()); Ms.push (6); Ms.push (2); Ms.push (1); System.out.println (Ms.min ()); Ms.pop (); System.out.println (Ms.min ()); Ms.pop (); System.out.println (Ms.min ()); }} class minstack{private stack<integer> Minstack = new stack<integer> (); private stack<integer> Stack = new Stack<integer> (); public int pop () {minstack.pop (); return Stack.pop (); public void push (int num) {if (Minstack.size () <=0) {minstack.push (num); return; } Integer min = Minstack.lastelement (); if (num<min) {minstack.push (num); } else{Minstack.push (min); } stack.push (num); } public int min () {if (Minstack.size () <=0) {return-1; } return Minstack.lastelement (); }}
Topic Seven:
Find out how many occurrences in the array are greater than half @Test public void Test () {int[] num = {1,2,2,2,2,2,2,4,2,4,6,4,2,6,8,2,7,7}; SYSTEM.OUT.PRINTLN (Morethanhaft (num)); } public int morethanhaft (int[] num) {int result =-1; int times = 0, for (int i=0;i<num.length;i++) {if (times==0) { re Sult = Num[i]; times++; } else{if (num[i]==result) { times++; } else{ times--;}} } return result;
Topic Eight:
Determines whether an array is the stacking order of another stack @Test public void Test () {int[] num = {1,2,3,4,5};//int[] num1={1,2,3,5,4}; int[] num2={2,1,5,3 , 4}; stack<integer> S1 = new stack<integer> (); stack<integer> s2 = new stack<integer> (); for (int i=0;i<5;i++) { s2.push (num2[i]); } System.out.println (Testorder (NUM,S1,S2)); } public boolean Testorder (int[] num,stack<integer> s1,stack<integer> s2) {int length = num.length, for (int i=0 ; i<length;i++) { s1.push (num[i]); int s2num = S2.lastelement (); if (S2num==s1.lastelement (). Intvalue ()) { S1.pop (); S2.pop (); } } while (!s1.isempty ()) {if (!s1.pop (). Equals (S2.pop ())) {return false; } } return true; }
Topic Nine:
Draw 5 cards from poker, 0 can be any number, determine whether the CIS @Test public void Test () {int[] num = {0,1,5,3,2}; SYSTEM.OUT.PRINTLN (check (num)); } public boolean check (int[] num) {//0-13 int[] pai = new int[14], for (int n:num) {pai[n]+=1; } qsort (num,0,num.length-1); int count = pai[0]; int start = 0; if (num[0]==0) {start=num[1]; } else{start=num[0]; } for (int i = start;i<=start+5;i++) {if (pai[i]>1) return false; Count + = Pai[i]; } if (count = = 5) return true; else return false; } public void Qsort (int[] Num,int left,int right) {if (left<right) {int partition = partition (Num,left,right); Qsort (num,left,partition-1); Qsort (Num,partition+1,right); }} public int partition (int[] Num,int left,int right) {int partition = Num[left], while (Left<right) {while (left< Right && num[right]>=partition) {right--; } swap (Num,left,right); while (lEft<right && num[left]<=partition) {left++; } swap (Num,left,right); } return left; } public void Swap (int[] num,int m,int n) {int temp = num[m]; Num[m]=num[n]; Num[n]=temp; }
Topic Ten:
Output K-Ugly (factor only 2,3,5) @Test public void Test () { finduglynum (8),} public void finduglynum (int index) {int[] num = new Int[index]; int next = 1; Num[0]=1; int index2=0; int index3=0; int index5=0; while (next<index) {int num2 = num[index2]*2; int num3 = num[index3]*3; int num5 = num[index5]*5; Num[next] = getsuitable (NUM2,NUM3,NUM5); while (Num[index2]*2<=num[next]) { index2++, } while (Num[index3]*3<=num[next]) { index3++; } while (Num[index5]*5<=num[next]) { index5++; } next++; } System.out.println (Num[index-1]); } public int getsuitable (int num2,int num3,int NUM5) {int s = num2; if (num3<s) { s = num3; } if (num5<s) {
s = NUM5; } return s; }
Java interview-Classic algorithm questions