Skip to content

Commit e6fd223

Browse files
committed
Added Array questions and source code
1 parent 09b5413 commit e6fd223

File tree

3 files changed

+225
-155
lines changed

3 files changed

+225
-155
lines changed

Array/README.md

Lines changed: 201 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,201 @@
1+
# Array Manipulation in JavaScript: From Basics to Advanced
2+
3+
### How do you create an empty array in JavaScript?
4+
```javascript
5+
const arr = [1, 2, 3, 4, "Hello", {name: "Vishal"}, [1,2,3], 4];
6+
// const arr2 = new Array();
7+
console.log(arr);
8+
```
9+
10+
### How do you access the first and last elements of an array?
11+
```javascript
12+
const firstElement = arr[0]; // O(1)
13+
const arrLength = arr.length;
14+
const lastElement = arr[arrLength - 1];
15+
console.log(firstElement, arrLength, lastElement);
16+
```
17+
18+
### How do you remove the last element from an array?
19+
```javascript
20+
const lastElement1 = arr.pop(); // O(1)
21+
console.log(arr, lastElement1);
22+
```
23+
24+
### How do you add an element to the end of an array?
25+
```javascript
26+
arr.push(5); // O(1)
27+
console.log(arr);
28+
```
29+
30+
### How do you add an element to the start of an array?
31+
```javascript
32+
arr.unshift(0); // O(N)
33+
console.log(arr);
34+
```
35+
36+
### How do you remove the first element from an array?
37+
```javascript
38+
arr.shift(); // O(N)
39+
console.log(arr);
40+
```
41+
42+
### How do you loop through an array in JavaScript?
43+
```javascript
44+
for (let i = 0; i < arr.length; i++){
45+
console.log(arr[i]);
46+
}
47+
48+
arr.forEach((x, i) => {
49+
console.log(x);
50+
});
51+
52+
for (let x of arr){
53+
console.log(x);
54+
}
55+
```
56+
57+
### Question 1: How do you check if an element exists in an array?
58+
```javascript
59+
const findElement = (arr, target) => {
60+
for (let x of arr){
61+
if (x === target){
62+
return true;
63+
}
64+
}
65+
return false;
66+
}
67+
68+
console.log(findElement(arr, "Hello"));
69+
console.log(findElement(arr, "H"));
70+
console.log(arr.includes("Hello"));
71+
```
72+
73+
### Question 2: How do you find the index of an element in an array?
74+
```javascript
75+
const findElementIndex = (arr, target) => {
76+
for (let i = 0; i < arr.length; i++){
77+
if (arr[i] === target){
78+
return i;
79+
}
80+
}
81+
return -1;
82+
}
83+
84+
console.log(findElementIndex(arr, "Hello"));
85+
console.log(arr.indexOf("Hello"));
86+
```
87+
88+
### How to delete, add & update elements from a specific index?
89+
```javascript
90+
console.log(arr);
91+
arr.splice(1, 3);
92+
console.log(arr);
93+
arr.splice(1, 0, 2, 3, 4, 5, 6);
94+
console.log(arr);
95+
arr.splice(1, 3, 6, 7, 8);
96+
console.log(arr);
97+
```
98+
99+
### `splice()` vs `slice()`
100+
```javascript
101+
const subArr = arr.slice(1, 4); // [start, end)
102+
console.log(subArr);
103+
```
104+
105+
### Shallow Copy of Array
106+
```javascript
107+
const arrB = arr;
108+
arrB.splice(1, 4);
109+
console.log(arrB, arr);
110+
```
111+
112+
### Deep Copy of Array
113+
```javascript
114+
const arrC = [...arr];
115+
const arrD = Array.from(arr);
116+
const arrE = arr.concat();
117+
arrC.splice(1, 4);
118+
arrD.splice(1, 4);
119+
arrE.splice(1, 3);
120+
console.log(arrC, arrD, arrE, arr);
121+
```
122+
123+
### How to concatenate two arrays in JavaScript?
124+
```javascript
125+
const newArr = [...arr, ...arrE];
126+
const newArr2 = arr.concat(arrE);
127+
console.log(newArr, newArr2);
128+
```
129+
130+
### Question 3: How can you check if two arrays are equal?
131+
```javascript
132+
const isArrayEqual = (arr1, arr2) => {
133+
if (arr1.length !== arr2.length){
134+
return false;
135+
}
136+
137+
for (let i = 0; i < arr1.length; i++){
138+
if (arr1[i] !== arr2[i]){
139+
return false;
140+
}
141+
}
142+
return true;
143+
144+
// One Line solution
145+
// return arr1.length === arr2.length && arr1.every((ele, i) => arr1[i] === arr2[i]);
146+
}
147+
148+
console.log(isArrayEqual([1, 2, 3], [1, 2, 3]));
149+
```
150+
151+
### Question 4: How to sort an array in ascending and descending order?
152+
```javascript
153+
const x = [1, 4, 6, 0, -9, -5];
154+
x.sort(); // O(NlogN)
155+
console.log(x);
156+
157+
x.sort((a, b) => b - a);
158+
console.log(x);
159+
```
160+
161+
### Question 5: How to reverse an array?
162+
```javascript
163+
x.reverse();
164+
console.log(x);
165+
```
166+
167+
### Map, Filter & Reduce
168+
```javascript
169+
const newMapArr = x.map((ele, i) => ele * ele);
170+
console.log(newMapArr);
171+
172+
const positiveNumbers = x.filter((ele, i) => ele > 0);
173+
console.log(positiveNumbers);
174+
175+
const sumOFArr = positiveNumbers.reduce((acc, ele) => acc + ele);
176+
console.log(sumOFArr);
177+
```
178+
179+
### Flat: [1, 2, 4, 5, 6, 7, 8, 9]
180+
```javascript
181+
const y = [1, 2, [4, 5, [6, 7]], 8, 9];
182+
const flattedArray = y.flat(2);
183+
console.log(flattedArray);
184+
```
185+
186+
### `filter()` vs `find()`
187+
```javascript
188+
const positiveNumber = x.find((ele, i) => ele > 0);
189+
console.log(positiveNumber);
190+
```
191+
192+
# Practice Questions
193+
194+
- [Two Sum](https://leetcode.com/problems/two-sum/)
195+
- [Majority Element](https://leetcode.com/problems/majority-element/)
196+
- [Remove Duplicates from sorted array](https://leetcode.com/problems/remove-duplicates-from-sorted-array)
197+
- [Squares of a Sorted Array](https://leetcode.com/problems/squares-of-a-sorted-array)
198+
- [Find Pivot Index](https://leetcode.com/problems/find-pivot-index/)
199+
- [Move Zeroes](https://leetcode.com/problems/move-zeroes)
200+
- [Remove Element](https://leetcode.com/problems/remove-element)
201+
- [Max Consecutive Ones](https://leetcode.com/problems/max-consecutive-ones/)

Basics/README.md

Lines changed: 24 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Practise Loop, functions & Math Problems
22

3-
### Question 1: sum of all natural numbers from 1 to n
3+
### Question 1: Sum of all natural numbers from 1 to n
44

55
```javascript
66
function sumOfNaturalNumber(num){
@@ -11,12 +11,11 @@ function sumOfNaturalNumber(num){
1111
return sum;
1212
}
1313

14-
console.log(sumOfNaturalNumber(5)) //15
15-
console.log(sumOfNaturalNumber(10)) //55
16-
console.log(sumOfNaturalNumber(8)) //36
14+
console.log(sumOfNaturalNumber(5)); // 15
15+
console.log(sumOfNaturalNumber(10)); // 55
16+
console.log(sumOfNaturalNumber(8)); // 36
1717
```
1818

19-
2019
### Question 2: Sum of digits of a number
2120

2221
```javascript
@@ -29,11 +28,10 @@ function sumOfDigits(num){
2928
return sum;
3029
}
3130

32-
console.log(sumOfDigits(1287)) //18
31+
console.log(sumOfDigits(1287)); // 18
3332
```
3433

35-
36-
### Question 3: count the number of digits of a number
34+
### Question 3: Count the number of digits of a number
3735

3836
```javascript
3937
function countDigits(num){
@@ -46,31 +44,30 @@ function countDigits(num){
4644
return count;
4745
}
4846

49-
console.log(countDigits(121)) //3
50-
console.log(countDigits(-1211413131)) //10
47+
console.log(countDigits(121)); // 3
48+
console.log(countDigits(-1211413131)); // 10
5149
```
5250

53-
### Question 4: Given an integer x, return true if x is a palindrome, and false otherwise.
54-
A palindrome number is a number that remains the same when digits are reversed
51+
### Question 4: Check if a number is palindrome
5552

5653
```javascript
5754
let isPalindrome = function(x) {
5855
let copyNum = x, reverseNum = 0;
5956

6057
while(copyNum > 0){
61-
const lastDigit = copyNum%10;
62-
reverseNum = reverseNum*10 + lastDigit;
63-
copyNum = Math.floor(copyNum/10)
58+
const lastDigit = copyNum % 10;
59+
reverseNum = reverseNum * 10 + lastDigit;
60+
copyNum = Math.floor(copyNum / 10);
6461
}
6562

66-
return x === reverseNum
63+
return x === reverseNum;
6764
};
6865

69-
console.log(isPalindrome(121)) //true
70-
console.log(isPalindrome(1234)) //false
66+
console.log(isPalindrome(121)); // true
67+
console.log(isPalindrome(1234)); // false
7168
```
7269

73-
### Question 5: Find nth fibonacci number
70+
### Question 5: Find nth Fibonacci number
7471
The Fibonacci numbers, commonly denoted F(n) form a sequence, called the Fibonacci sequence,
7572
such that each number is the sum of the two preceding ones, starting from 0 and 1.
7673

@@ -88,16 +85,15 @@ let fib = function(n) {
8885
}
8986
return next;
9087
};
88+
9189
// Fibonacci Sequence: 0 1 1 2 3 5 8...
92-
console.log(fib(5)) // 5
93-
console.log(fib(10)) //55
90+
console.log(fib(5)); // 5
91+
console.log(fib(10)); // 55
9492
```
9593

96-
97-
### Question 6: Missing Number
94+
### Question 6: Missing Number in an Array
9895
Given an array nums containing n distinct numbers in the range [0, n],
9996
return the only number in the range that is missing from the array.
100-
10197
```javascript
10298
let missingNumber = function(nums) {
10399
let sum = 0;
@@ -107,19 +103,16 @@ let missingNumber = function(nums) {
107103
return nums.length*(nums.length+1)/2 - sum;
108104
};
109105

110-
111106
// One Line Solution:
112107
let missingNumber = (nums) => nums.length*(nums.length+1)/2 - nums.reduce((acc, num) => num + acc);
113108

114-
115-
console.log(missingNumber([3,0,1])) //2
116-
console.log(missingNumber([9,6,4,2,3,5,7,0,1])) //8
109+
console.log(missingNumber([3,0,1])); // 2
110+
console.log(missingNumber([9,6,4,2,3,5,7,0,1])); // 8
117111
```
118112

119-
120113
# Practice Questions
121114

122-
- [Count odd Numbers in an Interval Range](https://leetcode.com/problems/count-odd-numbers-in-an-interval-range/)
115+
- [Count Odd Numbers in an Interval Range](https://leetcode.com/problems/count-odd-numbers-in-an-interval-range/)
123116
- [Fizz Buzz](https://leetcode.com/problems/fizz-buzz/)
124117
- [Power of Two](https://leetcode.com/problems/power-of-two/)
125-
- [Find Square root of a Number](https://leetcode.com/problems/sqrtx/)
118+
- [Find Square root of a Number](https://leetcode.com/problems/sqrtx/)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy