LeetCode 904. Fruit Into Baskets in Java

In this post we will solve the LeetCode 904. Fruit Into Baskets problem using the Java programming language.

You are visiting a farm that has a single row of fruit trees arranged from left to right. 
The trees are represented by an integer array fruits where fruits[i] is the type of fruit the ith tree produces.

You want to collect as much fruit as possible. 
However, the owner has some strict rules that you must follow:

o You only have two baskets, and each basket can only hold a single type of fruit. 
  There is no limit on the amount of fruit each basket can hold.
o Starting from any tree of your choice, 
  you must pick exactly one fruit from every tree (including the start tree) while moving to the right. 
  The picked fruits must fit in one of your baskets.
o Once you reach a tree with fruit that cannot fit in your baskets, you must stop.

Given the integer array fruits, return the maximum number of fruits you can pick.

Constraints:

o 1 <= fruits.length <= 10^5
o 0 <= fruits[i] < fruits.length

Related Topics:

o Array
o Hash Table
o Sliding Window

The two approaches that came to mind are using a hashmap, which should not have the best performance but should be acceptable, and the second using a sliding window, which should be faster than the one using a hashmap. Continue reading “LeetCode 904. Fruit Into Baskets in Java”

Minimum Loss

Good day software engineers and developers! It is a Thursday morning and seems like it will be a sunny day with highs in the low 70’s F. Like I mentioned in a previous post, the days are getting shorter and cooler. My wife and I decided to walk after the workday is over. We tried it yesterday and by 06:00 PM we were back home. At that time there is daylight and the temperature is much higher than earlier in the day. Continue reading “Minimum Loss”

Can Construct

It is Wednesday on a nice and warm day in the Twin Cities of Minneapolis and St. Paul. To be honest with you, it does not matter much if the day is nice or not. I have not been outside today. On the other hand the forecast for Friday, Saturday and Sunday is calling for temperatures in the low 90’s. Hopefully my wife and I will be able to enjoy the days. In particular we are planning on walking early morning so we can avoid the high temperatures. We are planning on grilling and consuming some adult beverages. I believe we are almost out of beer so we might stop by Friday evening after work by the liquor store. Continue reading “Can Construct”

How Sum

Once again it is Friday in the Twin Cities of Minneapolis and St. Paul. This coming weekend is Memorial Day 2021. My wife and I will be heading out after work to visit our younger son. It is about a three-hour drive. Today in the Twin Cities is rather cold. As we reach our destination it might be raining. At least that is what the weather forecast call for today. While driving the temperature is not much of a concern. Rain on the highway is OK as long as we do not encounter thunderstorms. Yesterday evening we filled up the SUV so we are ready to leave at the end of the workday today.

I kept on watching the Dynamic Programming – Learn to Solve Algorithmic Problems & Coding Challenges video on YouTube. I am around the 2nd hour into the video and to be honest with you I am enjoying it.

My wife and I drove back after spending a couple days with our son and family. We have not visit with them in person for the past year and a half. The boys are growing like weeds. We are planning on visiting them before the yearend holidays. They are planning on a trip with friends around Christmas 2021.

On a side note my Pixel 4 cell phone died again while we were out of town. Tried pressing and holding the different buttons but nothing happened. Back home, I tried charging the phone for an hour or so to get some juice in the battery. After repeating the process the phone continues to be dead. Today we have other plans. Will stop by T-Mobile tomorrow and see if they can revive the phone once again. The issue appears to be battery related. Now a day who knows? It might be a virus. One way of the other we are done with Google phones. We are moving to Apple. Will let you know my first impressions as soon as I get the new phone configured to a point I can have what I consider basic configuration. Continue reading “How Sum”

Grid Traveler or Unique Paths

The weather is acting somewhat erratic. Today the forecasted high in the Twin Cities of Minneapolis and St. Paul will be 20F lower than yesterday. Tomorrow it should be 10F lower than today and should be raining. The water level in pond in my backyard is very low. Some rain should help. I noticed that a couple of cranes have made their home for summer the pond. Not sure if they are the same that return every year or they are an offspring of the ones from last year. I do not know much about cranes.

Since the weather will be nice today; my wife and I will go for a walk after the end of the workday. Not sure what we will do tomorrow. Perhaps we will go to the Mall of America.

On a different note, as you might know, I work in 2-hour blocks. After each block I go up and get something to drink. A few minutes later I head back to work. A few weeks ago I moved a stationary bike from a utility room and set it up in the lower level living room. I started biking for 5 minutes after completing a 2-hour block. That is working very well. I get between 20 to 25 minutes biking each workday. Since the bike is indoors I can do it year round. Continue reading “Grid Traveler or Unique Paths”

Movies on Flight

Good day! It is a Friday in the month of May. The forecast called for rain and thunderstorms. We only received some rain. It is good to have some rain because things were starting to dry up. When vegetation dries up it may catch on fire.

In this post I will attempt to solve two flavors of the same problem. I believe one can create a few more problems by changing just a few words in the requirement. This will become clear as we read the requirements and describe the differences.

I found this problem named Movies on Flight in the LeetCode web site. Apparently Amazon has been using different versions on some of their technical assessments. Continue reading “Movies on Flight”

Clone Graph in Java

It is Friday morning and I am getting on Skype to chat with my best friend. We met when we were attending elementary school. We chat most Fridays but sometimes something comes up and we need to postpone for the following week. All friendships need care and time to maintain. The call occurs at 06:00 AM so hopefully I will have time to get this post done before the call.

The weekend is going to be the warmest of the year so far. We will be around 60F. Most people are going to use their grills or smokers. I believe we will join the group.

I received a message associated with a previous post. I will reply to it later today. The message suggests some improvements to my code. First of all I appreciate the message and suggestion. Please note that in general I want to get a solution up and running and accepted by the web site (e.g., HackerRank, LeetCode). If the solution is too slow, in general I try a second and in some occasions a third approach. I am not going to say that I have the best possible solution. I just want to make sure I describe my approach and you can see my thought process. Continue reading “Clone Graph in Java”

Dot Product of Two Sparse Vectors in Java

It is Thursday and for a while it was snowing. We received a couple inches of fresh snow. Will see what the weather brings us this weekend. I believe Sunday is going to be the coldest day of this winter so far. We might hit -20F. That said; it appears that the weather forecast changes multiple times a day.

Today my wife was not at home for lunch. I prepare toasts with avocado. Put a dab of butter on a couple slices of ciabatta bread, place them on a cooking sheet and into the oven (set at 400F) they went for about seven minutes. While that was going on, I took out from the freezer a Butter Chicken with Basmati rice tray from Trader Joe’s. As soon as the toast was done I swapped the tray with the chicken. The instructions called for 25 minutes so I consumed the toast with avocado and went back to my office. Continue reading “Dot Product of Two Sparse Vectors in Java”

Encode and Decode TinyURL in Java

It is Sunday morning again. It seems that time is flying by faster than ever. Yesterday I worked all morning (about 6 hours). My daughter in law was going to visit her family and my son had to stay home. They were expecting a delivery and installation of a piece of exercising equipment. The delivery was scheduled between 03:00 PM and 06:00 PM.

Earlier that day I had made some pizza dough. I used to knit the dough by hand. In the past couple years I have switched to using our Kitchenaid mixer. I can take all the ingredients, mix them and put the dough to rise in about 25 minutes. I do it while chatting with my wife during breakfast. She just watches me switch tasks while having yogurt with homemade granola and warm milk with a triple espresso. We both like to drink coffee. Continue reading “Encode and Decode TinyURL in Java”

Alien Dictionary

It is Thursday morning and it has been a long week at work. Apparently we have been experiencing lots of issues with our cloud platform. It seems that the storage server works fine when running on bare metal, but it experiences network related issues when running on virtual machines. We are currently looking at what might be causing the issues with the stack in VMs.

Before we start dealing with the problem at hand, I want to mention that I have a few books on algorithms. Like most people, I like to avoid spending money when I can get the same or similar results by doing a web search and reading the resulting material. I am a member of the ACM. I have access some of O’Reilly materials on-line. I believe both the books and videos have helped me locate quality information and are planning on continuing to use it. Continue reading “Alien Dictionary”