Sprint Challenge - Web Unit 2 Sprint 8

Technical Assessment Preparation Challenge

This sprint challenge tests your ability to solve technical problems using the frameworks and techniques covered throughout the sprint.

Challenge Overview

Requirements

For this sprint challenge, you will need to:

  1. Complete a series of algorithm challenges
  2. Update your GitHub profile and resume
  3. Submit your solutions on GitHub

Challenge 1: Array Manipulation

Two Sum Problem

Given an array of integers and a target, return the indices of the two numbers that add up to the target.

function twoSum(nums, target) {
  const map = new Map();
  
  for (let i = 0; i < nums.length; i++) {
    const complement = target - nums[i];
    
    if (map.has(complement)) {
      return [map.get(complement), i];
    }
    
    map.set(nums[i], i);
  }
  
  return null;
}

// Example:
// Input: nums = [2, 7, 11, 15], target = 9
// Output: [0, 1] (because nums[0] + nums[1] = 2 + 7 = 9)

Challenge 2: Palindrome Checker

Valid Palindrome

Determine if a string is a valid palindrome, considering only alphanumeric characters and ignoring case.

function isPalindrome(s) {
  // Remove non-alphanumeric characters and convert to lowercase
  const cleaned = s.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();
  
  // Check if the string is the same forward and backward
  return cleaned === cleaned.split('').reverse().join('');
}

// Example:
// Input: s = "A man, a plan, a canal: Panama"
// Output: true

Challenge 3: Moving Window

Maximum Sum Subarray

Find the contiguous subarray within an array (containing at least one number) that has the largest sum.

function maxSubArray(nums) {
  if (nums.length === 0) return 0;
  
  let maxSum = nums[0];
  let currentSum = nums[0];
  
  for (let i = 1; i < nums.length; i++) {
    // Either start a new subarray or extend the existing one
    currentSum = Math.max(nums[i], currentSum + nums[i]);
    // Update the maximum sum if the current sum is greater
    maxSum = Math.max(maxSum, currentSum);
  }
  
  return maxSum;
}

// Example:
// Input: nums = [-2, 1, -3, 4, -1, 2, 1, -5, 4]
// Output: 6 (from subarray [4, -1, 2, 1])

Challenge 4: Career Preparation

GitHub Profile and Resume

Update your GitHub profile to showcase your projects and technical skills. Create or refine your technical resume based on the guidelines covered in Module 4.

  • Optimize your GitHub profile with a professional README
  • Pin your best repositories to showcase your skills
  • Ensure your profile has a professional photo and bio
  • Update your technical resume with relevant skills and projects
  • Include appropriate keywords and follow the formatting guidelines

Submission Guidelines

Complete all challenges and submit them by the deadline. Ensure your code is well-commented and follows best practices discussed in the sprint.

Your submission should include:

  • GitHub repository with your solutions
  • Updated GitHub profile link
  • PDF of your technical resume