chore(CPlusPlus): add even no of digits (#579)
Co-authored-by: Arsenic <54987647+Arsenic-ATG@users.noreply.github.com>pull/576/head^2
parent
18a0ddb00c
commit
96c9f520fb
|
@ -0,0 +1,74 @@
|
||||||
|
/*
|
||||||
|
Description: Given an array nums of integers, return how many of them contain an even number of digits.
|
||||||
|
|
||||||
|
Time Complexity: O(n) where n is the size of the array
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <vector>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
//function to count the number of digits of every array element
|
||||||
|
int countdigits(int n)
|
||||||
|
{
|
||||||
|
int c = 0;
|
||||||
|
while (n > 0)
|
||||||
|
{
|
||||||
|
n = n / 10;
|
||||||
|
c++;
|
||||||
|
}
|
||||||
|
//return the count
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
//we can use common logarithms (base 10) to find the number of digits of an integer ( number of digits = log10(n) + 1 )
|
||||||
|
//C/C++ provides us with a factory function ( defined in < cmath > header ) to compute common log of a number.
|
||||||
|
//same function as above but with this approach
|
||||||
|
|
||||||
|
/*
|
||||||
|
int countdigits(int n)
|
||||||
|
{
|
||||||
|
if(n < 0)
|
||||||
|
n = n * -1;
|
||||||
|
if(n)
|
||||||
|
return (int)log10((double)n) + 1;
|
||||||
|
else
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
int findNumbers(vector<int> &nums)
|
||||||
|
{
|
||||||
|
int count = 0;
|
||||||
|
for (auto it : nums)
|
||||||
|
{
|
||||||
|
//countdigits() will return the number of digits present in the element
|
||||||
|
int dc = countdigits(it);
|
||||||
|
//if it is even, increment the count
|
||||||
|
if ( ! (dc & 2) )
|
||||||
|
{
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//at the end, return the count
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
//main starts
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
vector<int> nums = {12, 345, 2, 6, 7896};
|
||||||
|
cout << "Number of even no. digits are: " << findNumbers(nums);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Input: nums = [12,345,2,6,7896]
|
||||||
|
Output: 2
|
||||||
|
Explanation:
|
||||||
|
12 contains 2 digits (even number of digits).
|
||||||
|
345 contains 3 digits (odd number of digits).
|
||||||
|
2 contains 1 digit (odd number of digits).
|
||||||
|
6 contains 1 digit (odd number of digits).
|
||||||
|
7896 contains 4 digits (even number of digits).
|
||||||
|
Therefore only 12 and 7896 contain an even number of digits.
|
||||||
|
*/
|
|
@ -0,0 +1,43 @@
|
||||||
|
#include <iostream>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
//function starts
|
||||||
|
bool isPowerOfTwo(const n)
|
||||||
|
{
|
||||||
|
//declare a variable to know if n is a power of 2 or not
|
||||||
|
long i = 1;
|
||||||
|
//at every iteration it will calcalute power of 2 starting from 1
|
||||||
|
while (i < n)
|
||||||
|
{
|
||||||
|
i = i * 2;
|
||||||
|
}
|
||||||
|
//if n is the power of 2, i and n value will be same
|
||||||
|
//if they are same, it will return true, else it will return false
|
||||||
|
return i == n;
|
||||||
|
}
|
||||||
|
|
||||||
|
//main starts
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
cin >> n;
|
||||||
|
cout << isPowerOfTwo(n);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Example 1:
|
||||||
|
|
||||||
|
Input: n = 1
|
||||||
|
Output:1 (true)
|
||||||
|
Explanation: 20 = 1
|
||||||
|
Example 2:
|
||||||
|
|
||||||
|
Input: n = 16
|
||||||
|
Output:1 (true)
|
||||||
|
Explanation: 24 = 16
|
||||||
|
Example 3:
|
||||||
|
|
||||||
|
Input: n = 3
|
||||||
|
Output: 0 (false)
|
||||||
|
*/
|
|
@ -0,0 +1,52 @@
|
||||||
|
/*
|
||||||
|
Description: Given the array nums, for each nums[i] find out how many numbers in the array are smaller than it.
|
||||||
|
|
||||||
|
Time Complexity: O(n) where n is the number of elements in the array
|
||||||
|
*/
|
||||||
|
#include <iostream>
|
||||||
|
#include <vector>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
//function starts
|
||||||
|
//will check if every jth element is smaller than ith element
|
||||||
|
vector<int> smallerNumbersThanCurrent(vector<int> &nums)
|
||||||
|
{
|
||||||
|
vector<int> v;
|
||||||
|
for (int i = 0; i < nums.size(); i++)
|
||||||
|
{
|
||||||
|
int count = 0;
|
||||||
|
for (int j = 0; j < nums.size(); j++)
|
||||||
|
{
|
||||||
|
if (nums[j] < nums[i])
|
||||||
|
{
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
v.push_back(count);
|
||||||
|
}
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
//main starts
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
vector<int> nums = {8, 1, 2, 2, 3};
|
||||||
|
vector<int> ans = smallerNumbersThanCurrent(nums);
|
||||||
|
cout << "The answer is: \n";
|
||||||
|
for (auto it : ans)
|
||||||
|
{
|
||||||
|
cout << it << " ";
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Input: nums = [8,1,2,2,3]
|
||||||
|
Output: [4,0,1,1,3]
|
||||||
|
Explanation:
|
||||||
|
For nums[0]=8 there exist four smaller numbers than it (1, 2, 2 and 3).
|
||||||
|
For nums[1]=1 does not exist any smaller number than it.
|
||||||
|
For nums[2]=2 there exist one smaller number than it (1).
|
||||||
|
For nums[3]=2 there exist one smaller number than it (1).
|
||||||
|
For nums[4]=3 there exist three smaller numbers than it (1, 2 and 2).
|
||||||
|
*/
|
|
@ -1,6 +1,7 @@
|
||||||
# C++
|
# C++
|
||||||
|
|
||||||
## Arrays
|
## Arrays
|
||||||
|
|
||||||
- [Counting Inversions](Arrays/counting-inversions.cpp)
|
- [Counting Inversions](Arrays/counting-inversions.cpp)
|
||||||
- [Dutch Flag Algorithm](Arrays/dutch-flag-algo.cpp)
|
- [Dutch Flag Algorithm](Arrays/dutch-flag-algo.cpp)
|
||||||
- [Left Rotation](Arrays/left-rotation.cpp)
|
- [Left Rotation](Arrays/left-rotation.cpp)
|
||||||
|
@ -22,6 +23,7 @@
|
||||||
- [Kadane's Algorithm](Arrays/Kadane's-Algorithm.cpp)
|
- [Kadane's Algorithm](Arrays/Kadane's-Algorithm.cpp)
|
||||||
|
|
||||||
## Dynamic-Programming
|
## Dynamic-Programming
|
||||||
|
|
||||||
- [Longest Common Subsequence](Dynamic-Programming/longest-common-subsequence.cpp)
|
- [Longest Common Subsequence](Dynamic-Programming/longest-common-subsequence.cpp)
|
||||||
- [Longest Common Substring](Dynamic-Programming/longest-common-substring.cpp)
|
- [Longest Common Substring](Dynamic-Programming/longest-common-substring.cpp)
|
||||||
- [0/1-knapsack](Dynamic-Programming/01-knapsack.cpp)
|
- [0/1-knapsack](Dynamic-Programming/01-knapsack.cpp)
|
||||||
|
@ -29,6 +31,7 @@
|
||||||
- [Edit Distance](Dynamic-Programming/edit-distance.cpp)
|
- [Edit Distance](Dynamic-Programming/edit-distance.cpp)
|
||||||
|
|
||||||
## Graphs
|
## Graphs
|
||||||
|
|
||||||
- [Bellman Ford Algorithm](Graphs/bellman-ford.cpp)
|
- [Bellman Ford Algorithm](Graphs/bellman-ford.cpp)
|
||||||
- [kruskal Algorithm](Graphs/kruskal-algorithm.cpp)
|
- [kruskal Algorithm](Graphs/kruskal-algorithm.cpp)
|
||||||
- [Breadth First Search](Graphs/breadth-first-search.cpp)
|
- [Breadth First Search](Graphs/breadth-first-search.cpp)
|
||||||
|
@ -38,9 +41,11 @@
|
||||||
- [Connected Components](Graphs/total-connected-components.cpp)
|
- [Connected Components](Graphs/total-connected-components.cpp)
|
||||||
|
|
||||||
## Multiplication
|
## Multiplication
|
||||||
|
|
||||||
- [Karatsuba](Multiplication/karatsuba.cpp)
|
- [Karatsuba](Multiplication/karatsuba.cpp)
|
||||||
|
|
||||||
## Linked Lists
|
## Linked Lists
|
||||||
|
|
||||||
- [All possible insertions](Linked-Lists/all-possible-insertion.cpp)
|
- [All possible insertions](Linked-Lists/all-possible-insertion.cpp)
|
||||||
- [Singly linked lists](Linked-Lists/singly.cpp)
|
- [Singly linked lists](Linked-Lists/singly.cpp)
|
||||||
- [doubley linked lists](Linked-Lists/doubly.cpp)
|
- [doubley linked lists](Linked-Lists/doubly.cpp)
|
||||||
|
@ -55,6 +60,7 @@
|
||||||
- [Remove Duplicate in Sorted linked list](Linked-Lists/remove-duplicates-in-sorted-linked-list.cpp)
|
- [Remove Duplicate in Sorted linked list](Linked-Lists/remove-duplicates-in-sorted-linked-list.cpp)
|
||||||
|
|
||||||
## Searching
|
## Searching
|
||||||
|
|
||||||
- [Linear Search](Searching/linear-search.cpp)
|
- [Linear Search](Searching/linear-search.cpp)
|
||||||
- [Jump Search](Searching/jump-search.cpp)
|
- [Jump Search](Searching/jump-search.cpp)
|
||||||
- [Binary Search](Searching/binary-search.cpp)
|
- [Binary Search](Searching/binary-search.cpp)
|
||||||
|
@ -65,12 +71,14 @@
|
||||||
- [Exponential Search](Searching/exponential-search.cpp)
|
- [Exponential Search](Searching/exponential-search.cpp)
|
||||||
|
|
||||||
## Stacks
|
## Stacks
|
||||||
|
|
||||||
- [Balancing Parenthesis](Stacks/balanced-parenthesis.cpp)
|
- [Balancing Parenthesis](Stacks/balanced-parenthesis.cpp)
|
||||||
- [Reversing Stack](Stacks/reverse-stack.cpp)
|
- [Reversing Stack](Stacks/reverse-stack.cpp)
|
||||||
- [Stack using Array](Stacks/stack-using-array.cpp)
|
- [Stack using Array](Stacks/stack-using-array.cpp)
|
||||||
- [Infix to postfix expression conversion](Stacks/infix-to-postfix.cpp)
|
- [Infix to postfix expression conversion](Stacks/infix-to-postfix.cpp)
|
||||||
|
|
||||||
## Sorting
|
## Sorting
|
||||||
|
|
||||||
- [Bubble Sort](Sorting/bubble-sort.cpp)
|
- [Bubble Sort](Sorting/bubble-sort.cpp)
|
||||||
- [Insertion Sort](Sorting/insertion-sort.cpp)
|
- [Insertion Sort](Sorting/insertion-sort.cpp)
|
||||||
- [Quicksort](Sorting/quick-sort.cpp)
|
- [Quicksort](Sorting/quick-sort.cpp)
|
||||||
|
@ -88,6 +96,7 @@
|
||||||
- [Cycle Sort](Sorting/cycle-sort.cpp)
|
- [Cycle Sort](Sorting/cycle-sort.cpp)
|
||||||
|
|
||||||
## Strings
|
## Strings
|
||||||
|
|
||||||
- [Rabin-Karp pattern search algo](Strings/rabin-karp.cpp)
|
- [Rabin-Karp pattern search algo](Strings/rabin-karp.cpp)
|
||||||
- [All subsequence of a string (Recursion) ](Strings/sequence.cpp)
|
- [All subsequence of a string (Recursion) ](Strings/sequence.cpp)
|
||||||
- [String reversal](Strings/string-reverse.cpp)
|
- [String reversal](Strings/string-reverse.cpp)
|
||||||
|
@ -100,6 +109,7 @@
|
||||||
- [Boyer Moore pattern search](Strings/Boyer_Moore.cpp)
|
- [Boyer Moore pattern search](Strings/Boyer_Moore.cpp)
|
||||||
|
|
||||||
## Trees
|
## Trees
|
||||||
|
|
||||||
- [Creating Binary Tree](Trees/build-binary-tree.cpp)
|
- [Creating Binary Tree](Trees/build-binary-tree.cpp)
|
||||||
- [Counting and finding sum of all the nodes in BST](Trees/count-and-sum-of-nodes-in-binary-tree.cpp)
|
- [Counting and finding sum of all the nodes in BST](Trees/count-and-sum-of-nodes-in-binary-tree.cpp)
|
||||||
- [Level Order Traversal](Trees/level-order-traversal.cpp)
|
- [Level Order Traversal](Trees/level-order-traversal.cpp)
|
||||||
|
@ -115,6 +125,7 @@
|
||||||
- [Iterative Segment Tree](Trees/IterativeSegmentTree.cpp)
|
- [Iterative Segment Tree](Trees/IterativeSegmentTree.cpp)
|
||||||
|
|
||||||
# Maths
|
# Maths
|
||||||
|
|
||||||
- [Kaprekar Number](Maths/Kaprekar-number.cpp)
|
- [Kaprekar Number](Maths/Kaprekar-number.cpp)
|
||||||
- [Prime Number](Maths/prime-check.cpp)
|
- [Prime Number](Maths/prime-check.cpp)
|
||||||
- [Prime Sieve](Maths/prime-sieve.cpp)
|
- [Prime Sieve](Maths/prime-sieve.cpp)
|
||||||
|
@ -126,9 +137,13 @@
|
||||||
- [Missing number](Maths/missing-number.cpp)
|
- [Missing number](Maths/missing-number.cpp)
|
||||||
- [Factorial of a number](Maths/factorial.cpp)
|
- [Factorial of a number](Maths/factorial.cpp)
|
||||||
- [Prime-number](Maths/prime-number.cpp)
|
- [Prime-number](Maths/prime-number.cpp)
|
||||||
|
- [Even number of digits](Maths/even-no-of-digits.cpp)
|
||||||
|
- [Power of two](Maths/power-of-two.cpp)
|
||||||
|
- [Small numbers](Maths/small-numbers.cpp)
|
||||||
- [Segmented Sieve](Maths/segmented-sieve-range.cpp)
|
- [Segmented Sieve](Maths/segmented-sieve-range.cpp)
|
||||||
|
|
||||||
# Recursion
|
# Recursion
|
||||||
|
|
||||||
- [Tower of Hanoi](Recursion/towerofHanoi.cpp)
|
- [Tower of Hanoi](Recursion/towerofHanoi.cpp)
|
||||||
- [Factorial](Recursion/factorial.cpp)
|
- [Factorial](Recursion/factorial.cpp)
|
||||||
- [Permutation](Recursion/permutation.cpp)
|
- [Permutation](Recursion/permutation.cpp)
|
||||||
|
@ -146,4 +161,3 @@
|
||||||
- [Array sorted or not](Recursion\array-sorted-or-not.cpp)
|
- [Array sorted or not](Recursion\array-sorted-or-not.cpp)
|
||||||
- [Product of two numbers](Recursion\product-of-numbers.cpp)
|
- [Product of two numbers](Recursion\product-of-numbers.cpp)
|
||||||
- [Product of digits in a number](Recursion\product-of-digits.cpp)
|
- [Product of digits in a number](Recursion\product-of-digits.cpp)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue