prepinsta codes
prepinsta codes
Brute Force
#include <iostream>
using namespace std;
bool contains_dup(int arr[],int n){
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if(arr[i]==arr[j]){
return true;
}
}
}
return false;
}
int main(){
int n;
cin>>n;
int arr[n];
for(int i=0;i<n;i++){
cin>>arr[i];
}
bool result = contains_dup(arr,n);
if(result){
cout<<"contains duplicate"<<endl;
}else{
cout<<"donot contains duplicates"<<endl;
}
return 0;
}
Using Hashset
#include <iostream>
#include <vector>
#include <unordered_set>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> nums(n);
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
if (hasDuplicate(nums)) {
cout << "Array contains duplicates." << endl;
} else {
cout << "Array does not contain duplicates." << endl;
}
return 0;
}
Using Sorting
class Solution {
public:
bool hasDuplicate(vector<int>& nums) {
sort(nums.begin(),nums.end());
for(int i=0;i<nums.size();i++){
if(nums[i]==nums[i-1]){
return true;
}
}
return false;
}
};
// Valid Anagram
class Solution {
public:
bool isAnagram(string s, string t) {
if(s.length()!=t.length()){
return false;
}
sort(s.begin(),s.end());
sort(t.begin(),t.end());
for(int i=0;i<t.length();i++){
if(s[i]!=t[i]){
return false;
}
}
return true;
}
};
class Solution {
public:
bool isAnagram(string s, string t) {
if(s.length()!=t.length()){
return false;
}
unordered_map<char,int> countS;
unordered_map<char,int> countT;
for(int i=0;i<s.length();i++){
countS[s[i]]++;
countT[t[i]]++;
}
if(countS==countT){
return true;
}else{
return false;
}
}
};
// array concatenation
class Solution {
public:
vector<int> getConcatenation(vector<int> arr) {
int n = arr.size();
vector<int>ans(2*n);
for(int i =0;i<n;i++){
ans[i]=arr[i];
ans[n+i]=arr[i];
}
return ans;
}
};
Two Sum
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
for(int i=0;i<nums.size();i++){
for(int j =i+1;j<nums.size();j++){
if(nums[i]+nums[j]==target){
return {i,j};
}
}
}
return{};
}
};
// replace every element in that array with the greatest element among the elements to
its right, and replace the last element with -1.
class Solution {
public:
vector<int> replaceElements(vector<int>& arr) {
int n = arr.size();
for(int i=0;i<n-1;i++){
int max_element = arr[i+1];
for(int j=i+1;j<n;j++){
max_element = max(max_element,arr[j]);
}
arr[i]= max_element;
}
arr[n-1]= -1;
return arr;
}
};
class Solution {
public:
vector<int> replaceElements(vector<int>& arr) {
int n = arr.size();
int max_element = -1;
for(int i = n-1;i>=0;i--){
int curr = arr[i];
arr[i]=max_element;
max_element = max(max_element,curr);
}
return arr;
}
};
// is subsequence
class Solution {
public:
bool isSubsequence(string s, string t) {
int i =0;
int j = 0;
while(i<s.length()&&j<t.length()){
if(s[i]==t[j]){
i++;
j++;
}else{
j++;
}
}
return i == s.length();
}
};