Posts

Showing posts with the label Arrays

Sort Colors

Given an array with n objects colored red, white or blue, sort them in-place   so that objects of the same color are adjacent, with the colors in the order red, white and blue. Here, we will use the integers 0, 1, and 2 to represent the color red, white, and blue respectively. Note:  You are not suppose to use the library's sort function for this problem. Example: Input: [2,0,2,1,1,0] Output: [0,0,1,1,2,2]   class Solution {    public void sortColors(int[] nums) {         int low = 0;         int mid = 0;         int high = nums.length - 1;         int temp = 0;         while (mid <= high) {             switch (nums[mid]) {                 case 0: {                     temp = nums[low];                     nums[low] = nums[mid];                     nums[mid] = temp;                     low++;                     mid++;                     break;                 }                 case 1:                     mid++;                     break;                 case 2: {

Search Insert Position

Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order. You may assume no duplicates in the array. Example 1: Input: [1,3,5,6], 5 Output: 2 Example 2: Input: [1,3,5,6], 2 Output: 1 Example 3: Input: [1,3,5,6], 7 Output: 4 Example 4: Input: [1,3,5,6], 0 Output: 0   class Solution {     public int searchInsert(int[] nums, int target) {                 int i = 0, length = nums.length;                 for(i=0;i<length;i++){             if(nums[i] >= target){                 return i;             }             }         return i;     } } Try it on Leetcode Here, we are iterating each element in arrays. While iterating to find perfect insert position, if current number is greater than or equal to target then that position will be result and no need to iterate further. If no position are found and we are at end of array , then last position will b

Coin Change 2

Image
You are given coins of different denominations and a total amount of money. Write a function to compute the number of combinations that make up that amount. You may assume that you have infinite number of each kind of coin. Example 1: Input: amount = 5, coins = [1, 2, 5] Output: 4 Explanation: there are four ways to make up the amount: 5=5 5=2+2+1 5=2+1+1+1 5=1+1+1+1+1 Example 2: Input: amount = 3, coins = [2] Output: 0 Explanation: the amount of 3 cannot be made up just with coins of 2. Example 3: Input: amount = 10, coins = [10] Output: 1 Note: You can assume that 0 <= amount <= 5000 1 <= coin <= 5000 the number of coins is less than 500 the answer is guaranteed to fit into signed 32-bit integer   class Solution {        public int change(int amount, int[] coins) {         int[] dp = new int[amount + 1];         dp[0] = 1;         for (int coin : coins) {             for (int i = coin; i <= amount; i++) {                 dp[i]