Neethi Elizabeth Joseph
BAN USERI am passionate about coding and am working on developing my technical skills.
public static int findMeetingPoint(Node head){
Node p1=head;
Node p2=head;
while(p2.next!=null){
p1=p1.next;
p2=p2.next.next;
if(p1==p2){ //meeting point inside the loop
break;
}
}
//to find index of meeting point start from the beginning with p1 count to p2
int index=0;
p1=head;
while(p1!=p2){
p1=p1.next;
index++;
}
System.out.println(index);
return index;
}
1. convert strings to character arrays using toCharArray()
2. sort the arrays using Arrays.sort()
3. compare the arrays Arrays.equals()
package goldmansachs;
import java.util.Arrays;
public class anagram {
public static void main(String args[]){
String arr[] ={"cat","tac","act","xyz"};
String s = "tac";
for(int i =0;i<arr.length;i++){
if(isAnagram(s,arr[i])){
System.out.println(arr[i]);
}
}
}
public static boolean isAnagram(String x,String y){
char a[] = x.toCharArray();
char b[] = y.toCharArray();
Arrays.sort(a);
Arrays.sort(b);
if(Arrays.equals(a,b)){
return true;
}
return false;
}
}
Using a Hashmap, and Arrays.asList(map) to easily iterate over the hashmap:
package goldmansachs;
import java.util.Arrays;
import java.util.HashMap;
public class countDuplicates {
public static void main(String args[]){
String arr[] = {"Good","Word","GOod","wOrd","Giant","nerd","NErd"};
countDupes(arr);
}
public static void countDupes(String arr[]){
HashMap<String,Integer> map = new HashMap<String,Integer>();
int l = arr.length;
for(int i=0;i<l;i++){
String a = arr[i].toLowerCase();
if(map.containsKey(a)) //if true
{
int freq = map.get(a);
freq = freq+1;
map.put(a,freq);
}
else{
map.put(a,1);
}
}
//iterate through hashmap using an iterator
System.out.println(Arrays.asList(map));
}
}
package goldmansachs;
import java.util.*;
import java.math.*;
public class histogramMelt {
public static void main(String args[]){
//int arr[] = {5,4,3,6,0,1};
int arr[] = {0,1,1,1,1,0};
int count =histogramMelt(arr);
System.out.println("result =" +count);
}
public static boolean checkZero(int arr[]){
int flag =0;
for(int i=0;i<arr.length;i++){
if(arr[i]==0){
flag=1;
}
else{
flag=0;
break;
}
System.out.print(arr[i] +" ");
}
if(flag==0) return false;
else return true;
}
public static int histogramMelt(int arr[]){
boolean b ;
int count=0;
int l = arr.length;
int val[] = new int[l];
do{
for(int i =0 ; i<l;i++){
System.out.println(i+" "+arr[i]);
if(i==0 || i== l-1){ //corner case first and last elements of the array
val[i]=0;
System.out.println(i+" "+val[i]);
}
else{
if((arr[i]>arr[i+1])||(arr[i]>arr[i-1])){ // other values are replaced by min(left,right) neighbours
val[i] = Math.min(arr[i+1],arr[i-1]);
System.out.println(i+" "+val[i]);
}
else{
val[i] = arr[i]-1; // every column has the top block exposed, so every column gets deducted by 1
if(val[i]<0) val[i]=0; // avoid negatives
System.out.println(i+" "+val[i]);
}
}
}
b =checkZero(val);
arr =val;
count ++; // number of times the histogram was melted
} while(b==false);
return count;
}
}
- Neethi Elizabeth Joseph July 20, 2016