issac
BAN USERThe ouput should be abcdef;lmnop;tuvwxyz;
public static void main(String args[]){
String s= "AbcDefljdflsjflmnopflsjflasjftuvWxYz";
ArrayList<String> arr=printConsecutive(s);
for(int i=0;i<arr.size();i++)
System.out.print(arr.get(i)+";");
}
private static ArrayList<String> printConsecutive(String s) {
ArrayList<String> array = new ArrayList<String>();
int beginIndex=0;
int diff='a'-'A';
for(int i=1;i<s.length();i++){
if((s.charAt(i)<='Z'&&s.charAt(i)>='A')||
(s.charAt(i)<='z'&&s.charAt(i)>='a')){
int gap =(s.charAt(i)<'a'?s.charAt(i)+diff:s.charAt(i))
-(s.charAt(i-1)<'a'?s.charAt(i-1)+diff:s.charAt(i-1));
if(i==1&&gap!=1)
beginIndex=2;
else if(gap!=1){
if(i-beginIndex!=1)
array.add(s.substring(beginIndex,i).toLowerCase());
beginIndex=i;
}
if(i==s.length()-1&&i!=beginIndex)
array.add(s.substring(beginIndex,i+1).toLowerCase());
}
}
return array;
}
The Code below do not consider repeated numbers cases. If it's taken into consideration, we should store both value and index of max in row, min in column, then check the two arrays' items value whether equal, if equal then check index, which is much complexed.
public final static int N=5;
public static void main(String args[]){
int[][] matrix= new int[N][N];
for(int i=0;i<N;i++)
for(int j=0;j<N;j++){
matrix[i][j]=(int) (1000*Math.random());
System.out.print(matrix[i][j]+",");
if(j==N-1)
System.out.println();
}
ArrayList<Integer> al= new ArrayList<Integer>();
al=SaddleNumber(matrix);
for(int i=0;i<al.size();i++){
int rowValue=(int)al.get(i)/N;
int columnValue=(int)al.get(i)%N;
System.out.println("Row: "+rowValue+" Column: "+columnValue+" Value: "+matrix[rowValue][columnValue]);
}
}
private static ArrayList<Integer> SaddleNumber(int[][] matrix) {
// TODO Auto-generated method stub
ArrayList<Integer> al = new ArrayList<Integer>();
int[] rowMax= new int[N];
int[] columnMin= new int[N];
for(int i=0;i<N;i++)
{
rowMax[i]=0;
for(int j=0;j<N;j++)
{
if(matrix[i][rowMax[i]]<matrix[i][j])
rowMax[i]=j;
}
}
for(int i=0;i<N;i++)
{
columnMin[i]=0;
for(int j=0;j<N;j++)
{
if(matrix[columnMin[i]][i]>matrix[j][i])
columnMin[i]=j;
}
}
for(int i=0;i<N;i++){
if(i==columnMin[rowMax[i]]) {
int index=i*N+rowMax[i];
al.add(index);
}
}
return al;
}
public static void main(String[] args){
String s="4678912356012356";
String str=separateSequance(s);
System.out.print(str);
}
private static String separateSequance(String s) {
// TODO Auto-generated method stub
boolean sign=true;
StringBuilder sb=new StringBuilder();
int index=0;
for(int i=0;i<s.length();i++){
if(i==s.length()-1&&sign==true)
sb.append(s.substring(index, s.length()));
int distance=1;
if(i!=0)
distance=s.charAt(i)-s.charAt(i-1);
if(distance!=1)
sign=false;
if(sign==false){
sb.append(s.substring(index,i)+";");
index=i;
sign=true;
}
}
return sb.toString();
}
private static void findMinIncreasingSequance(double[] sequance) {
double sum=0,min=0;
int sign=0;
for(int i=0;i<sequance.length;i++){
if(sequance[i]<=0&&sign==0){
sign=i+1;
min=sequance[i];
}
sum+=sequance[i];
if(sum<min){
min=sum;
sign=i;
}
if(sum>0)
sum=0;
}
System.out.println("end sign is:"+sign);
System.out.println("min value is"+min);
}
Replisafergusona, Consultant at Myntra
I am Lisa from Chicago,I am working as a Show host in the New World. I also work Performs ...
Pick max 3,and min 2, takes O(n)
- issac March 07, 2012If biggest one is positive, check remain max
2 product and min 2 product, take the one larger.
If biggest one is negative,same, but take the one smaller.
Test:
123456, -3 -2 0 1 2 3, -6 -5 -4 -3 -2 -1