DSA Questions: List Solutions in Dart
1. Reverse a List
Reverse the elements of a list without using built-in methods.
List reverseList(List list) {
List reversed = [];
for (int i = list.length - 1; i >= 0; i--) {
reversed.add(list[i]);
}
return reversed;
}
void main() {
print(reverseList([1, 2, 3, 4])); // Output: [4, 3, 2, 1]
}
2. Find Maximum and Minimum
Find the maximum and minimum elements in a list.
Map findMinMax(List list) {
int min = list[0];
int max = list[0];
for (int num in list) {
if (num < min) min = num;
if (num > max) max = num;
}
return {'min': min, 'max': max};
}
void main() {
print(findMinMax([3, 5, 1, 8, 2])); // Output: {min: 1, max: 8}
}
3. Find Duplicate Elements
Identify all duplicate elements in a list.
List findDuplicates(List list) {
Set seen = {};
Set duplicates = {};
for (int num in list) {
if (seen.contains(num)) {
duplicates.add(num);
} else {
seen.add(num);
}
}
return duplicates.toList();
}
void main() {
print(findDuplicates([1, 2, 3, 1, 4, 2])); // Output: [1, 2]
}
4. Two Sum Problem
Find two numbers in the list that sum to a given target.
List twoSum(List nums, int target) {
Map map = {};
for (int i = 0; i < nums.length; i++) {
int complement = target - nums[i];
if (map.containsKey(complement)) {
return [map[complement]!, i];
}
map[nums[i]] = i;
}
return [];
}
void main() {
print(twoSum([2, 7, 11, 15], 9)); // Output: [0, 1]
}
Comments
Post a Comment