Beautiful Triplets
here a[j]-a[i] must be equal to d and a[k]-[j] = d
so solving a[j]-a[i] =d we get a[i] = a[j] -d
and solving a[k]-a[j] =d we get a[k] = a[j] + dso according to problem statement a[j]-d and a[j] +d must be in the array...
but if we write the if condition as h[a[i]-d] >=1 and h[a[i]+d >=1 then this logic will fail wen there are repetitionsExample:10 3
1 6 7 7 8 10 12 13 14 19
here 10-3 = 7 and 7 exists in array10+3 is 13 and 13 also exists in array but the if condition will only count once
but since there is another 7, another beautiful triplet (7,10,13) also exists.
No we must change the if condition a[j]-d, a[j] and a[j]+d must be in arrayit is as good as
a[i], a[i]+d, a[i]+2d must exist in array (since a[i] = a[j]-d)
so our for loop would beh[a[i]+d] >=1 and h[a[i]+2*d] >=1
Solution:
#include <stdio.h>
int main() { int n,d; scanf("%d%d", &n,&d); long long int a[n],h[2000001]={0},c=0,i; for (i = 0; i < n; i++) { scanf("%lld",&a[i]); h[a[i]]++; } for( i=0;i<n;i++) if( h[a[i]+d] >=1 && h[a[i]+2*d]>=1) c++; printf("%lld\n", c);}
Equalize the Array
https://www.hackerrank.com/challenges/equality-in-a-array/problem
#include <stdio.h>int main(){ int n,h[101]={0}; scanf("%d", &n); int a[n],max=0,c=0; for(int i=0;i<n;i++) { scanf("%d", &a[i]); h[a[i]]++; if(h[a[i]]>max) max=h[a[i]]; } printf("%d",n-max);}
10 3
1 6 7 7 8 10 12 13 14 19
#include <stdio.h>
int main()
{
int n,d;
scanf("%d%d", &n,&d);
long long int a[n],h[2000001]={0},c=0,i;
for (i = 0; i < n; i++)
{
scanf("%lld",&a[i]);
h[a[i]]++;
}
for( i=0;i<n;i++)
if( h[a[i]+d] >=1 && h[a[i]+2*d]>=1)
c++;
printf("%lld\n", c);
}
#include <stdio.h>
int main()
{
int n,h[101]={0};
scanf("%d", &n);
int a[n],max=0,c=0;
for(int i=0;i<n;i++)
{
scanf("%d", &a[i]);
h[a[i]]++;
if(h[a[i]]>max)
max=h[a[i]];
}
printf("%d",n-max);
}
Sock Merchant
https://www.hackerrank.com/challenges/sock-merchant/copy-from/62004605In C :
#include <math.h>#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>
int main() {
int n,i,s=0;
scanf("%i", &n);
int *ar = malloc(sizeof(int) * n);
int b[101]={0};
for(int ar_i = 0; ar_i < n; ar_i++){
scanf("%i",&ar[ar_i]);
b[ar[ar_i]]++;
}
for(i=0;i<101;i++)
s=s+b[i]/2;
printf("%d\n", s);
return 0;
}
In C++
int main() {
map<int,int> socks;
int i, total=0;
cin.ignore();
while(cin>>i){
socks[i]++;
if(!(socks[i]%2))
total++;
}
cout<<total;
return 0;
}
In Java
static int sockMerchant(int n , int ar[])
{
Map<Integer, Integer> map = new HashMap();
int ans=0;
for(int val: ar)
{
Integer c = map.get(val);
if(c == null)
map.put(val,1);
else
map.put(val,c+1);
}
for(int z: map.values())
ans=ans+z/2;
return ans;
}
In Java
static int sockMerchant(int n , int ar[])
{
Map<Integer, Integer> map = new HashMap();
int ans=0;
for(int val: ar)
{
Integer c = map.get(val);
if(c == null)
map.put(val,1);
else
map.put(val,c+1);
}
for(int z: map.values())
ans=ans+z/2;
return ans;
}
https://www.hackerrank.com/challenges/beautiful-triplets/problem
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>
int h[20001]={0};
int beautifulTriplets(int d, int arr_size, int* arr) {
// Complete this function
int c=0;
for(int i=1;i<arr_size;i++)
if(h[arr[i]-d] ==1 && h[arr[i]+d]==1)
c++;
return c;
}
int main() {
int n;
int d;
scanf("%i %i", &n, &d);
int *arr = malloc(sizeof(int) * n);
for (int arr_i = 0; arr_i < n; arr_i++) {
scanf("%i",&arr[arr_i]);
h[arr[arr_i]]++;
}
int result = beautifulTriplets(d, n, arr);
printf("%d\n", result);
return 0;
}
========================================================================
Weapon Value CodeChef solution
#include<stdio.h>int main() {
int t;
scanf("%d",&t);
while(t--)
{
int n,i,j,c=0;
scanf("%d",&n);
char st[n][11];
int h[26]={0};
for(i=0;i<n;i++)
scanf("%s",&st[i]);
for(i=0;i<n;i++)
{
for(j=0;st[i][j]!='\0';j++)
{
if(st[i][j] == '1')
h[j]++;
}
}
for(i=0;i<11;i++)
if(h[i] !=0 && h[i]%2 == 1)
c++;
printf("%d\n",c);
}
}
https://enthusiaststudent.blogspot.com/2018/02/anagram-hacker-rank-solution-in-c.html
https://enthusiaststudent.blogspot.com/2019/07/sherlock-and-valid-string-hacker-rank.html
https://enthusiaststudent.blogspot.com/2019/07/sherlock-and-valid-string-hacker-rank.html
https://www.hackerrank.com/contests/w38/challenges/minute-to-win-it/problem
No comments:
Post a Comment