Showing posts with label Java. Show all posts
Showing posts with label Java. Show all posts

Friday, 31 March 2023

Daily LeetCoding Challenge April, Day 1

 JAVA CODE-

class Solution {

    public int search(int[] nums, int target) {

        int low = 0, high = nums.length - 1;

        while (low <= high) {

            int mid = (high - low) / 2 + low;

            int num = nums[mid];

            if (num == target)

                return mid;

            else if (num > target)

                high = mid - 1;

            else

                low = mid + 1;

        }

        return -1;

    }

}

Tuesday, 28 March 2023

1402. Reducing Dishes [29/03/2023]

 A chef has collected data on the satisfaction level of his n dishes. Chef can cook any dish in 1 unit of time.


Like-time coefficient of a dish is defined as the time taken to cook that dish including previous dishes multiplied by its satisfaction level i.e. time[i] * satisfaction[i].


Return the maximum sum of like-time coefficient that the chef can obtain after dishes preparation.


Dishes can be prepared in any order and the chef can discard some dishes to get this maximum value.


 


Example 1:


Input: satisfaction = [-1,-8,0,5,-9]

Output: 14

Explanation: After Removing the second and last dish, the maximum total like-time coefficient will be equal to (-1*1 + 0*2 + 5*3 = 14).

Each dish is prepared in one unit of time.

Example 2:


Input: satisfaction = [4,3,2]

Output: 20

Explanation: Dishes can be prepared in any order, (2*1 + 3*2 + 4*3 = 20)

Example 3:


Input: satisfaction = [-1,-4,-5]

Output: 0

Explanation: People do not like the dishes. No dish is prepared.

 


Constraints:


n == satisfaction.length

1 <= n <= 500

-1000 <= satisfaction[i] <= 1000


SOLUTION

class Solution {
  public int maxSatisfaction(int[] satisfaction) {
    int ans = 0;
    int sumSatisfaction = 0;

    satisfaction = Arrays.stream(satisfaction)
                       .boxed()
                       .sorted(Collections.reverseOrder())
                       .mapToInt(Integer::intValue)
                       .toArray();

    for (final int s : satisfaction) {
      sumSatisfaction += s;
      if (sumSatisfaction <= 0)
        return ans;
      ans += sumSatisfaction;
    }

    return ans;
  }
}

Daily LeetCoding Challenge April, Day 1

 JAVA CODE- class Solution {     public int search(int[] nums, int target) {         int low = 0, high = nums.length - 1;         while (low...