Loading...
More TypeScript Posts
class DFS{public dfs(G: DFSGraph, startVert: number){let visited: boolean[] = Array<boolean>();// Pre-populate array:for(let i = 0; i < G.size; i++){visited.push(false);}let s: number[] = new Array();visited[startVert] = true;s.push(startVert);while(s.length > 0){const v = s.pop();for(let adjV of G.adj[v]){if(!visited[adjV]){visited[adjV] = true;s.push(adjV);}}}}public dfsRecursive(G: DFSGraph, startVert: number){let visited: boolean[] = Array<boolean>();// Pre-populate array:for(let i = 0; i < G.size; i++){visited.push(false);}this.dfsAux(G, startVert, visited);}private dfsAux(G: DFSGraph, v: number, visited: boolean[]){visited[v] = true;for(let adjV of G.adj[v]){if(!visited[adjV]){// this.foo(); // Something can happen before the visit.this.dfsAux(G, adjV, visited);// this.bar(); // Something can happen after the visit.}}}}
// theme.tsimport { createTheme } from '@mui/material/styles';const theme = createTheme({typography: {h1: {fontSize: '2rem',fontWeight: 700,lineHeight: 1.3},h2: {fontSize: '1.625rem',fontWeight: 700,lineHeight: 1.35},h3: {fontSize: '1.375rem',fontWeight: 700,lineHeight: 1.4},h4: {fontSize: '1.125rem',fontWeight: 700,lineHeight: 1.45},h5: {fontSize: '1rem',fontWeight: 700,lineHeight: 1.5},h6: {fontSize: '0.875rem',fontWeight: 700,lineHeight: 1.5},},});
function removeElement(nums: number[], val: number): number {let zeroStartIndex = 0;for(let i = 0; i < nums.length; i++) {if(nums[i] !== val) {nums[zeroStartIndex] = nums[i];zeroStartIndex++;}}return zeroStartIndex;};
function binarySearch(nums: number[], target: number): number {let left = 0;let right = nums.length - 1;while (left <= right) {const mid = left + Math.floor((right - left) / 2);if (nums[mid] === target) {return mid;} else if (nums[mid] < target) {left = mid + 1;} else {right = mid - 1;}}return left;}function searchInsert(nums: number[], target: number): number {return binarySearch(nums, target);};
interface Task {id: number;title: string;completed: boolean;}class TaskManager {private tasks: Task[] = [];constructor() {}addTask(title: string) {const taskId = this.tasks.length + 1;const task: Task = {id: taskId,title,completed: false,};this.tasks.push(task);}markTaskAsComplete(taskId: number) {const task = this.tasks.find((task) => task.id === taskId);if (task) {task.completed = true;}}markTaskAsIncomplete(taskId: number) {const task = this.tasks.find((task) => task.id === taskId);if (task) {task.completed = false;}}listTasks() {console.log('Tasks:');this.tasks.forEach((task) => {console.log(`${task.id}. [${task.completed ? 'X' : ' '}] ${task.title}`);});}}// Example usage:const taskManager = new TaskManager();taskManager.addTask('Buy groceries');taskManager.addTask('Pay bills');taskManager.addTask('Clean the house');taskManager.listTasks();// Output:// Tasks:// 1. [ ] Buy groceries// 2. [ ] Pay bills// 3. [ ] Clean the house
function removeDuplicates(nums: number[]): number {nums.splice(0, nums.length, ...Array.from(new Set(nums)));return nums.length;};console.log(removeDuplicates([1, 2, 3, 4, 5, 6]))