Skip to main content

Breaking the Records - HackerRank- Problem Solving in Java

Difficulty : EASY
Problem :

Maria plays college basketball and wants to go pro. Each season she maintains a record of her play. She tabulates the number of times she breaks her season record for most points and least points in a game. Points scored in the first game establish her record for the season, and she begins counting from there.

Visual representation of the table

Game Score Minimum Maximum Count Min Count Max
0 12 12 12 0 0
1 24 12 24 0 1
2 10 10 24 1 1
3 24 10 24 1 1
Ouput : [1 , 2]

Imporant Points to note

  • We canculate the record determining her performance on Game 0(which is highlited in green) which will the value of minimum and maximum.
  • We change the value of maximum or minimum only if her score breaks our current record of maximim or minimum.
  • in case she breaks record then we increment the counter respectively.
  • return the Count max and Count min in the same order as a List.

Algorithm

  • inputs recived : List score ,int games
  • Set Min and Max to scores 1st element or 0th index element.
  • Loop through the scores from the 2nd element or the 1st index till the scores.size()-1
  • inside the above loop check if the value of current index is larger maximum if so then increase the counter of the maximum and get the value of the maximum to the current value.
  • else if statement to check if the value is smaller than current minimum if so then increase the counter of the minimum and set the value of minimum to the current value
  • outside the loop create an array and add the two value in the order of maxcount then min count and add the list to the return statement.

I Highly recommend you dont go through the below code now but try to solve it in your own to get the ability to solve problems but im just pasting it here for those who hasnt manged to find the solution despite many trys

List brakingTheRecord(List score)
{

 int currentMax = score.get(0);
 int currentMin = score.get(0);

int surpassed = 0;
int backlogged = 0;

 for(int index = 0 ;index < score.size(); index++)
 {
  if(score.get(index) > currentMax)
  {
   surpassed++;
   currentMax = score.get(index);
  }
  else if(score.get(index) < currentMin)
  {
    backlogged++;
    currentMin = score.get(index);
  }

}
List result = new ArrayList<>();
result.add( surpassed);
result.add( backlogged);
System.out.println(surpassed +" "+ backlogged);
return result;
}

Comments

Popular posts from this blog

Implementing In-app and pre-locale language selection in Android

Modern Android App Architecture One of the essential features for a globalized app is the ability to provide users with the option to choose their preferred language within the application. In this blog post, we will guide you through the process of implementing in-app language selection in an Android app. Step 1: Create Locale String Resource Create a string resource file for each respective locale by navigating to res > new > Android Resource File . Select Locale and create a string.xml file. Copy and paste the translations of your app content into these files. Step 2: Configure Locale Preferences In the res/xml folder, create a new file called locales_config.xml and specify the locales of your choice. for example look at the following code: <?xml version="1.0" encoding="utf-8"?> <locale-config xmlns:android="http://schemas.android.com/apk/res/android"> <locale andro...

Basics of Room Persistence Library in Android #RP1

Room is a library built on top of SQLite that provides a more convenient and structured way to manage your app's local database. It lets you work with your data as Kotlin objects (data classes) instead of manually formulating them using SQL queries, which itself is a tedious task prone to many errors.   It also simplifies interactions with the database with many great features like validating the queries, seamless integration with Kotlin Flow, paging, LiveData, and many more. These features make Room the most preferred option for offline-first apps, as it expedites the process and helps us to avoid issues early in the development cycle. Since Google has the best article for setting up, I will be skipping the setup Dependency setup: Official Guide on Setting up Room Dependencies and plugins   Please do ensure you follow the above guide and then sync and build your project successfully, as it will help you to try out the components yourself. In t...

Search Textfield with options and clear button ideal for app TopBar- Jetpack Compose Component

In this blog post, we'll explore a simple yet effective implementation of a search bar in Jetpack Compose. The provided SearchTextField composable offers a basic text field with a placeholder, suitable for building the app top bar. Screen Shot of the Component from my Jot-app The following code can be used to your project directly and it should work as expected, the idea was to have a search bar for a top app which can also hst the buttons on either ends,do check the code below If you have any suggestions or improvements for the code, let's have a conversation below. Your feedback is valuable to me