shashi_kr
BAN USERstatic void greNext(int []A){
int l=A.length;
int j=1;
Stack eleA=new Stack();
Stack index=new Stack();
eleA.push(A[0]);
index.push(0);
while(j<l){
while(!eleA.isEmpty() && A[j]>eleA.getTop()){
A[index.pop()]=A[j];
eleA.pop();
}
eleA.push(A[j]);
index.push(j);
j++;
}
if(j==l){
while(!index.isEmpty()){
A[index.pop()]=-1;
}
}
for(int a:A){
System.out.print(a+" ");
}
}
static void prodArrByDivisionOpr(int []A){
int pro=1, l=A.length;
int []B=new int [l];
int []c=new int [l];
for(int i=0; i<l; i++){
B[i]=pro*A[i];
pro=B[i];
}
int p2=1;
for(int i=l-1; i>=0; i--){
c[i]=p2*A[i];
p2=c[i];
}
A[0]=c[1];
A[l-1]=B[l-2];
for(int i=1; i<l-1; i++){
A[i]=B[i-1]*c[i+1];
}
for(int a:A){
System.out.print(a+" ");
}
}
static void firstRepChar(String s){
char [] ch=s.toCharArray();
HashMap<Character, Integer> cMap=new HashMap<Character, Integer>();
int value=0;
for(char c:ch){
value=0;
if(cMap.containsKey(c)){
value=cMap.get(c);
}
value++;
cMap.put(c, value);
}
for(char c:ch){
if(cMap.get(c)>1){
System.out.print(c);
return;
}
}
}
static void greNext(int []A){
int l=A.length;
int j=1;
Stack eleA=new Stack();
Stack index=new Stack();
eleA.push(A[0]);
index.push(0);
while(j<l){
while(!eleA.isEmpty() && A[j]>eleA.getTop()){
A[index.pop()]=A[j];
eleA.pop();
}
eleA.push(A[j]);
index.push(j);
j++;
}
if(j==l){
while(!index.isEmpty()){
A[index.pop()]=eleA.pop();
}
}
for(int a:A){
System.out.print(a+" ");
}
}
static void binarySearchRotated(int [] A, int i, int l, int x){ // i=0; l=A.length-1;
if(i>l){
return;
}
int mid=(i+l)/2;
if(x==A[mid]){
System.out.print(mid);
return;
} else if(A[mid]>=A[l]){
if(x>=A[i] && x<A[mid]){
binarySearchRotated(A, i, mid-1, x);
} else binarySearchRotated(A, mid+1, l, x);
} else if(A[mid]<=A[l]){
if(x>A[mid] && x<=A[l]){
binarySearchRotated(A, mid+1, l, x);
}
else
binarySearchRotated(A, i, mid-1, x);
}
}
public static void main(String[] args){
int []A={1,-2,-3,4,5,6,7,8,-9,-10,11,12,13,-14,-15,-16,-17,-18, 19};
int l=A.length;
int j=l-1;
int i=0;
int [] b=sortArr(A, i, j);
for(i=0; i<l; i++){
System.out.print(b[i]+" ");
}
}
static int [] sortArr(int []A, int i, int j){
while(A[j]>=0 & j>-1){
j--;
}
int k=j;
while(A[k]<0 && k>-1){
k--;
}
for(int p=k; p<j; p++){
int temp=A[p];
A[p]=A[p+1];
A[p+1]=temp;
}
if(k==0){
return A;
}
j--;
k=j;
return sortArr(A, i, j);
}
}
import java.util.Scanner;
public class Foobar {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int x=in.nextInt();
int n=in.nextInt();
int []B=new int [n+1];
for(int i=1; i<=n; i++){
int f=in.nextInt();
B[i]=f;
}
int []A=new int [n+1];
int k=1;
A[1]=1;
while(k<n){
if(B[k]<B[k+1]){
A[k+1]=A[k]+1;
}
if(B[k+1]<B[k]){
A[k+1]=1;
}
k++;
}
int j=n;
while(j>0){
if(A[j]>A[j-1]){
j--;
} else if(A[j]==A[j-1]){
A[j-1]+=1;
j--;
} else if(A[j]<A[j-1]){
j--;
}
}
int sum=0;
for(int h=1; h<n+1; h++){
sum=sum+A[h]*x;
}
System.out.print(" \n"+sum);
}
}
input: x=10, n=14
8 5 6 5 7 10 5 3 6 5 7 2 1 3
final arrangment= 2 1 2 1 2 3 2 1 2 1 3 2 1 2
sum= 250
public static void main(String[] args){
int[] A={3, 6, 9, 13, 15, 20};
int la=A.length;
int [] B={1, 2, 3, 5, 6, 10, 11, 14, 17, 18, 21, 23};
int lb=B.length;
mergeArr(A, la, B, lb);
}
static void mergeArr(int []A, int la, int[]B, int lb){
int j=0, i=0, k=0;
int [] C=new int [la+lb];
while(i<la && j<lb){
if(A[i]<B[j]){
C[k]=min(A[i], B[j]);
i++;
} else if(A[i]>B[j]){
C[k]=min(A[i], B[j]);
j++;
} else {
C[k]=A[i];
System.out.print(C[k]+" ");
C[++k]=B[j];
i++; j++;
}
System.out.print(C[k]+" ");
k++;
}
while(i<la){
C[k]=A[i];
System.out.print(C[k]+" ");
i++;
}
while(j<lb){
C[k]=B[j];
System.out.print(C[k]+" ");
j++;
}
}
static int min(int a, int b){
return a<b?a:b;
}
}
output: 1 2 3 3 5 6 6 9 10 11 13 14 15 17 18 20 21 23
public class ArrayWithZeroesNOne {
public static void main(String[] args){
int []A={1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,0,0,1};
int l=A.length;
int [] b=sortArr(A, l);
for(int i=0; i<l; i++){
System.out.print(b[i]+" ");
}
}
static int[] sortArr(int[]A, int l){
for(int i=0, j=l-1; i<j;){
while(A[i]==0)
i++;
while(A[j]!=0)
j--;
if(i>=j)
break;
int temp=A[i];
A[i]=A[j];
A[j]=temp;
}
return A;
}
}
public class PythaTriplet {
public static void main(String[] args) {
int [] A={2, 9, 4, 5, 3, 60, 8, 30, 33, 45, 10, 40, 7, 50, 6};
int l=A.length;
int []b=sortArr(A, l);
for(int i=0; i<l; i++){
System.out.print(b[i]+" ");
}
System.out.println("\n");
//pythaTripletN3(A, l);
pythaTripletN2(A, l);
}
static int [] sortArr(int []A, int l){
for(int i=0; i<l; i++){
for(int j=i+1; j<l; j++){
if(A[i]>A[j]){
int temp=A[i];
A[i]=A[j];
A[j]=temp;
}
}
}
return A;
}
//n^3
static void pythaTripletN3(int [] A, int l){
int c=0;
int []B=new int [l];
for(int i=0; i<l; i++){
B[i]=(int) Math.pow(A[i], 2);
}
for(int i=0; i<l-2; i++)
for(int j=i+1; j<l-1; j++)
for(int k=j+1; k<l; k++)
if(B[i]+B[j]==B[k]){
System.out.print("("+A[i]+", "+A[j]+", "+A[k]+")"+" ");
c++;
}
System.out.println("\n"+c);
}
//n^2
static void pythaTripletN2(int [] A, int l){
int c=0;
int []B=new int[l];
for(int i=0; i<l; i++){
B[i]=A[i]*A[i];
}
for(int j=2; j<l; j++){
int k=0, n=j-1;
while(k<n){
if(B[k]+B[n]==B[j]){
System.out.print("("+A[k]+", "+A[n]+", "+A[j]+")"+" ");
k++;
n--;
c++;
}
else if(B[k]+B[n]>B[j])
n--;
else
k++;
}
}
int index=c;
System.out.print("\n\n"+"index= " +index);
}
}
output:
2 3 4 5 6 7 8 9 10 30 33 40 45 50 60
(3, 4, 5) (6, 8, 10) (30, 40, 50)
index= 3
public class TripletSumToZero {
public static void main(String[] args){
int [] A={ 1, 2, -3, 5, -7, 2, 4, -6};
int l= A.length;
tripletSumZero(A, l);
}
static void tripletSumZero(int [] A, int l){
for(int i=0; i<l-2; i++)
for(int j=i+1; j<l-1; j++)
for(int k=j+1; k<l; k++)
if(A[i]+A[j]==-A[k]){
System.out.print("("+A[i]+" "+A[j]+" "+ A[k]+") ");
}
}
}
vara, the triplets will be repeating only when the digits are repeated in array.
public class SortTwoSortedArr {
public static void main(String[] args){
int[] A = { 1, 3, 5, 8, 10, 14, 19, 23, 26, 28, 51, 52 };
int la = A.length;
int[] B = { 2, 4, 7, 8, 11, 13, 18, 20, 23, 26, 30, 31};
int lb = B.length;
mergeArray(A, la, B, lb);
}
static void mergeArray(int []A, int la, int []B, int lb){
int dubCount=0;
for(int i=0; i<la; i++)
for(int j=0; j<la; j++)
if(A[i]==B[j])
dubCount++;
int dc=la+lb-dubCount;
int [] C=new int [dc];
int a=0, b=0, k=0;
while(a<la && b<lb){
C[k++]=min(A[a], B[b]);
if(A[a]<B[b])
a++;
else if(A[a]>B[b])
b++;
else if(A[a]==B[b]){
a++;
b++;
}
}
while(a<la){
C[k++]=A[a];
a++;
}
while(b<lb){
C[k++]=B[b];
b++;
}
for(int i=0; i<dc; i++)
System.out.print(C[i]+" ");
}
static int min(int a, int b){
return a<b?a:b;
}
}
public class TripletSumToZero {
public static void main(String[] args){
int [] A={ 1, 3,0, -5, 2, 4, -9 , 7, 8, 5, -6, -7, 4, 2};
int l= A.length;
tripletSumZero(A, l);
}
static void tripletSumZero(int [] A, int l){
for(int i=0; i<l; i++)
for(int j=i+1; j<l-1; j++)
for(int k=j+1; k<l-2; k++)
if(A[i]+A[j]==-A[k])
System.out.print("("+A[i]+" "+A[j]+" "+A[k]+") ");
}
}
0123456789 (index)
- shashi_kr November 09, 20136210001000 ->