Friday, July 11, 2025

Leetcode 2769. Find the Maximum Achievable Number

  

Problem Statement:

2769. Find the Maximum Achievable Number


Given two integers, num and t. A number x is achievable if it can become equal to num after applying the following operation at most t times:Increase or decrease x by 1, and simultaneously increase or decrease num by 1.

Return the maximum possible value of x.

Initial Code: 

class Solution {
    public List<Integer> findWordsContaining(String[] words, char x) {
        List<Integer> findWordsContaining = new ArrayList();
        for (int i = 0; i < words.length; i++) {
            if (words[i].contains(x)) {
                findWordsContaining.add(i);
            }
        }
        return findWordsContaining;
    }
}


Issue in the code - 


new ArrayList() - Should declare the type parameter: new ArrayList<>() (or new ArrayList<Integer>())
words[i].contains(x) -  String.contains() expects a CharSequence, but  passed char. Need to convert the char to a String:



Leetcode 1920 – Build Array from Permutation

  

Problem Statement:

1920. Build Array from Permutation


Given a zero-based permutation nums (0-indexed), build an array ans of the same length where ans[i] = nums[nums[i]] for each 0 <= i < nums.length and return it.

A zero-based permutation nums is an array of distinct integers from 0 to nums.length - 1 (inclusive).

Initial Code

class Solution {
    public int[] buildArray(int[] nums) {
        int[nums.length] numsnew;
        for (int i=0;i<nums.length;i++){
            numsnew[i]=nums[nums[i]];
        }
        return numsnew;
    }
}


Issues in the code


LineIssue
int[nums.length] numsnew; - Invalid Java syntax for array declaration.
 Should be: int[] numsnew = new int[nums.length];



Corrected code

class Solution {
    public int[] buildArray(int[] nums) {
        int[] numsnew = new int[nums.length];
        for (int i = 0; i < nums.length; i++) {
            numsnew[i] = nums[nums[i]];
        }
        return numsnew;
    }
}

Leetcode 2894. Divisible and Non-divisible Sums Difference

 

Problem Statement:

 leetcode problem 2894. Divisible and Non-divisible Sums Difference


You are given positive integers n and m.

Define two integers as follows:num1: The sum of all integers in the range [1, n] (both inclusive) that are not divisible by m.
num2: The sum of all integers in the range [1, n] (both inclusive) that are divisible by m.

Return the integer num1 - num2.


Initial Code

class Solution {
    public int differenceOfSums(int n, int m) {
        int suma = 0;sumb=0; // ERROR: sumb not declared properly
        for (int i=1; i==n; i++){ // ERROR: i==n (this never iterates)
            if(i%m==0){
                sumb+=i;
            }else{
                suma+=i;
            }
        }
        return suma-sumb;
    }
}


Issues in the code:

  • Variable declaration: sumb is undeclared.
  • Loop condition: for (int i = 1; i == n; i++) executes only when i equals n, so it never loops. It must be i <= n.
  • Minor style: combining declarations on one line makes it harder to read

Corrected code

class Solution {
    public int differenceOfSums(int n, int m) {
        int suma = 0;
        int sumb = 0;
        for (int i = 1; i <= n; i++) {
            if (i % m == 0) sumb += i;
            else suma += i;
        }
        return suma - sumb;
    }
}