Fogy Free
Fogy Free
  • 705
  • 32 647
773 Sliding Puzzle
773 Sliding Puzzle. This Java code uses the Breadth-First Search (BFS) algorithm.
BFS is suitable for this problem because it explores all possible states level by level, ensuring that we find the shortest path to the solution.
We'll represent each board state as a string for easy comparison and use a queue to explore each state.
Explanation:
1. State Representation: Each board state is represented as a string. For example, the board [[1,2,3],[4,0,5]] is represented as "123405".
2. BFS Initialization: We initialize the BFS with the starting board state. We also maintain a set of visited states to avoid processing the same state multiple times.
3. Exploring Moves: For each state, we find the position of 0 and try to move it in all four possible directions (up, down, left, right). If the move is valid, we generate a new board state and add it to the queue if it hasn't been visited.
4. Checking for Solution: If we reach the target state "123450", we return the number of moves taken. If the queue is exhausted without finding the solution, we return -1.
มุมมอง: 11

วีดีโอ

1975 Maximum Matrix Sum
มุมมอง 1212 ชั่วโมงที่ผ่านมา
1975 Maximum Matrix Sum. This Java code maximizes the sum of the matrix elements by flipping the signs of adjacent elements. The key observation is that flipping the signs of two adjacent elements doesn't change the parity of the number of negative elements in the matrix. Therefore, the strategy is to make as many elements positive as possible, while considering the parity of negative numbers. ...
1072 Flip Columns For Maximum Number of Equal Rows
มุมมอง 1014 ชั่วโมงที่ผ่านมา
1072 Flip Columns For Maximum Number of Equal Rows. This Java code uses a hashmap to track the frequency of row patterns. The key insight is that two rows can be made equal by flipping columns if one row is the complement of the other. Therefore, for each row, we can either use the row as is or its complement as a key in the hashmap. The value in the hashmap will be the count of how many times ...
2516 Take K of Each Character From Left and Right
มุมมอง 2519 ชั่วโมงที่ผ่านมา
2516 Take K of Each Character From Left and Right. This Java code uses a two-pointer technique to find the minimum number of characters to take from both ends of the string. The idea is to first check if it's possible to have at least k of each character. If possible, we then try to minimize the number of characters taken by using a sliding window approach. Explanation: 1. Count Total Character...
862 Shortest Subarray with Sum at Least K
มุมมอง 19วันที่ผ่านมา
862 Shortest Subarray with Sum at Least K
2563 Count the Number of Fair Pairs
มุมมอง 814 วันที่ผ่านมา
2563 Count the Number of Fair Pairs
3097 Shortest Subarray With OR at Least K II
มุมมอง 3714 วันที่ผ่านมา
3097 Shortest Subarray With OR at Least K II
3133 Minimum Array End
มุมมอง 2814 วันที่ผ่านมา
3133 Minimum Array End
1829 Maximum XOR for Each Query
มุมมอง 1514 วันที่ผ่านมา
1829 Maximum XOR for Each Query
2275 Largest Combination With Bitwise AND Greater Than Zero
มุมมอง 4321 วันที่ผ่านมา
2275 Largest Combination With Bitwise AND Greater Than Zero
2914 Minimum Number of Changes to Make Binary String Beautiful
มุมมอง 1921 วันที่ผ่านมา
2914 Minimum Number of Changes to Make Binary String Beautiful
3163 String Compression III
มุมมอง 4121 วันที่ผ่านมา
3163 String Compression III
796 Rotate String
มุมมอง 9421 วันที่ผ่านมา
796 Rotate String
2490 Circular Sentence
มุมมอง 4821 วันที่ผ่านมา
2490 Circular Sentence
1277 Count Square Submatrices with All Ones
มุมมอง 4หลายเดือนก่อน
1277 Count Square Submatrices with All Ones
2458 Height of Binary Tree After Subtree Removal Queries
มุมมอง 32หลายเดือนก่อน
2458 Height of Binary Tree After Subtree Removal Queries
1233 Remove Sub-Folders from the Filesystem
มุมมอง 62หลายเดือนก่อน
1233 Remove Sub-Folders from the Filesystem
951 Flip Equivalent Binary Trees
มุมมอง 21หลายเดือนก่อน
951 Flip Equivalent Binary Trees
1593 Split a String Into the Max Number of Unique Substrings
มุมมอง 33หลายเดือนก่อน
1593 Split a String Into the Max Number of Unique Substrings
1545 Find Kth Bit in Nth Binary String
มุมมอง 99หลายเดือนก่อน
1545 Find Kth Bit in Nth Binary String
1405 Longest Happy String
มุมมอง 5หลายเดือนก่อน
1405 Longest Happy String
2938 Separate Black and White Balls
มุมมอง 8หลายเดือนก่อน
2938 Separate Black and White Balls
2530 Maximal Score After Applying K Operations
มุมมอง 16หลายเดือนก่อน
2530 Maximal Score After Applying K Operations
632 Smallest Range Covering Elements from K Lists
มุมมอง 24หลายเดือนก่อน
632 Smallest Range Covering Elements from K Lists
1942 The Number of the Smallest Unoccupied Chair
มุมมอง 11หลายเดือนก่อน
1942 The Number of the Smallest Unoccupied Chair
1963 Minimum Number of Swaps to Make the String Balanced
มุมมอง 6หลายเดือนก่อน
1963 Minimum Number of Swaps to Make the String Balanced
2696 Minimum String Length After Removing Substrings
มุมมอง 3หลายเดือนก่อน
2696 Minimum String Length After Removing Substrings
1813 Sentence Similarity III
มุมมอง 33หลายเดือนก่อน
1813 Sentence Similarity III
2491 Divide Players Into Teams of Equal Skill
มุมมอง 23หลายเดือนก่อน
2491 Divide Players Into Teams of Equal Skill
1381 Design a Stack With Increment Operation
มุมมอง 8หลายเดือนก่อน
1381 Design a Stack With Increment Operation

ความคิดเห็น

  • @warmcozy
    @warmcozy 19 วันที่ผ่านมา

    That pot roast looks delicious.

  • @diovsu
    @diovsu 22 วันที่ผ่านมา

    ok whats the point of this video, you didnt show usage of the function, and you didnt even put a link or code so we can see what does it do exactly

  • @ScaraB01
    @ScaraB01 หลายเดือนก่อน

    code

  • @AndreeaCe
    @AndreeaCe หลายเดือนก่อน

    Wtf

  • @cynthiataylor2092
    @cynthiataylor2092 2 หลายเดือนก่อน

    Fall 🍁

  • @FogyFree
    @FogyFree 4 หลายเดือนก่อน

    This code is much faster and much better on memory than Merge sort! The first thing I tried was quicksort but it TLE.

  • @alec7568
    @alec7568 4 หลายเดือนก่อน

    This is pure cringe.

  • @sidharthbalakrishnan
    @sidharthbalakrishnan 4 หลายเดือนก่อน

    This is not Java

  • @JabezJena
    @JabezJena 5 หลายเดือนก่อน

    Nice effort is applied in this video

  • @Ad-sn4up
    @Ad-sn4up 6 หลายเดือนก่อน

    Thanks 👍🏻

  • @Ad-sn4up
    @Ad-sn4up 6 หลายเดือนก่อน

    Thanks 👍🏻

  • @loutchyff6552
    @loutchyff6552 6 หลายเดือนก่อน

    I don't know what's this but lets go bro keep going 💪🏻

  • @matthewbaier766
    @matthewbaier766 8 หลายเดือนก่อน

    Ahh yes I do this all the time in the real world 💀

  • @ItsSuperMoosh
    @ItsSuperMoosh 8 หลายเดือนก่อน

    If you didnt use that cheap lazy ass AI voice over, you might not have needed 200 videos for 70 subs.

  • @ItsSuperMoosh
    @ItsSuperMoosh 8 หลายเดือนก่อน

    Piece of advice? Drop the lazy bullshit AI scripting and voice. Do your own shit. Be different. Not one of the million lazy shit ass yt pages ruining the platform.

  • @LakhanRathod-x5e
    @LakhanRathod-x5e 8 หลายเดือนก่อน

    Great Solution, Easy to understand and Optimal.

  • @alexeyrjeutski8147
    @alexeyrjeutski8147 8 หลายเดือนก่อน

    Right here there is no sense in double pointer technique. You can count the volume of the list first time, then get the middle in the second cycle - and it would be the same complexity. It would be the same amount of triggering of next pointers, the only advantage is in not adding the counter...

    • @nubunto
      @nubunto 8 หลายเดือนก่อน

      But you still iterate the list twice, right?

  • @kaninchengaming-inactive-6529
    @kaninchengaming-inactive-6529 8 หลายเดือนก่อน

    Smart!

  • @ziga1122
    @ziga1122 9 หลายเดือนก่อน

    why not just use a single while statement? As such: Node node = startNode; while (node.left != null) node = node.left

  • @n_x1891
    @n_x1891 9 หลายเดือนก่อน

    You should just subtract from tn instead of calculating the sum. You can also vectorize this operation.

    • @FogyFree
      @FogyFree 9 หลายเดือนก่อน

      Subtract what from tn or triangle number

    • @n_x1891
      @n_x1891 9 หลายเดือนก่อน

      @@FogyFree use the variable tn instead of sum. Subtracting in place is more efficient

  • @thefanboy3285
    @thefanboy3285 9 หลายเดือนก่อน

    god damn !

  • @hassankhan8055
    @hassankhan8055 9 หลายเดือนก่อน

    ❤❤❤

  • @Avneet098
    @Avneet098 9 หลายเดือนก่อน

    You can also do (n & -n) == n

    • @FogyFree
      @FogyFree 9 หลายเดือนก่อน

      I tried it and didn't pass test case 1 and 2

  • @Furryfattal
    @Furryfattal 9 หลายเดือนก่อน

    I wish spoken languages were like this. I've never wrote a lick of Java in my life but could understand this just fine 😂

  • @eterty8335
    @eterty8335 9 หลายเดือนก่อน

    que

  • @bruh-fw7op
    @bruh-fw7op 9 หลายเดือนก่อน

    as a computer engineering student, how the fuck did i never think of this

    • @FogyFree
      @FogyFree 9 หลายเดือนก่อน

      I'm not expert of binary but I consider this a trick or trivia that if you learn of it then you know the trick.

  • @Terrados1337
    @Terrados1337 9 หลายเดือนก่อน

    Neat, efficient code. But I'd probably slap you if I found that code uncommented in prod

    • @sorek__
      @sorek__ 9 หลายเดือนก่อน

      This is good code that doesn't need comments. Comment is in the name, rest you read and just understand as you go along.

    • @vibaj16
      @vibaj16 9 หลายเดือนก่อน

      I'm more annoyed at that curly bracket placement

    • @bruh-fw7op
      @bruh-fw7op 9 หลายเดือนก่อน

      @@vibaj16 that is the superior curly bracket placement

    • @vibaj16
      @vibaj16 9 หลายเดือนก่อน

      @@bruh-fw7op nooooo

    • @OnFireByte
      @OnFireByte 9 หลายเดือนก่อน

      ​@@sorek__ I agree that function's name should be enough for conveying what's trying to do, which it is. But it's just that there should be a comment why it work in the code that do some hacky stuff especially bitwise genius.

  • @clrkgmii
    @clrkgmii 9 หลายเดือนก่อน

    holy shit

  • @MarketStudent-v2h
    @MarketStudent-v2h 9 หลายเดือนก่อน

    Nice

  • @MarketStudent-v2h
    @MarketStudent-v2h 9 หลายเดือนก่อน

    ❤❤❤❤❤❤

  • @BattlewarPenguin
    @BattlewarPenguin 9 หลายเดือนก่อน

    'For we live by faith, not by sight.'

  • @WillEhrendreich
    @WillEhrendreich 10 หลายเดือนก่อน

    Wait.. How is this any different than simply being an anagram?

    • @FogyFree
      @FogyFree 9 หลายเดือนก่อน

      anagram has more symmetry, you can look up problem 1657 on leetcode for full description

  • @FogyFree
    @FogyFree 10 หลายเดือนก่อน

    1235 Maximum Profit in Job Scheduling. To solve the problem of finding the maximum profit in job scheduling without overlapping time ranges, we can use dynamic programming. The idea is to sort the jobs by their end times and then iterate through the sorted jobs, at each step calculating the maximum profit that can be obtained by either taking the current job or not. This code defines a Job class to store the start time, end time, and profit of a job. The jobScheduling method first creates an array of Job objects and sorts them by their end times. It then uses dynamic programming to calculate the maximum profit at each step, storing the results in the dp array. The findLastNonConflictingJob method is a binary search helper function that finds the last job that does not conflict with the current job being considered. The time complexity of this solution is O(n log n) due to the sorting step and the binary search for each job. The space complexity is O(n) for the dp array and the jobs array. Here's a Java implementation of the solution: java import java.util.Arrays; class Solution { public int jobScheduling(int[] startTime, int[] endTime, int[] profit) { int n = startTime.length; Job[] jobs = new Job[n]; for (int i = 0; i < n; i++) { jobs[i] = new Job(startTime[i], endTime[i], profit[i]); } // Sort the jobs by their end time Arrays.sort(jobs, (a, b) -> a.end - b.end); // dp[i] will store the maximum profit by considering jobs[0...i] int[] dp = new int[n]; dp[0] = jobs[0].profit; for (int i = 1; i < n; i++) { // Profit including the current job int profitIncluding = jobs[i].profit; int lastIndex = findLastNonConflictingJob(jobs, i); if (lastIndex != -1) { profitIncluding += dp[lastIndex]; } // Maximum profit by excluding or including the current job dp[i] = Math.max(dp[i - 1], profitIncluding); } // The last element of dp will have the maximum profit return dp[n - 1]; } // Helper method to find the last job which doesn't conflict with the current job private int findLastNonConflictingJob(Job[] jobs, int index) { int low = 0, high = index - 1; while (low <= high) { int mid = (low + high) / 2; if (jobs[mid].end <= jobs[index].start) { if (jobs[mid + 1].end <= jobs[index].start) { low = mid + 1; } else { return mid; } } else { high = mid - 1; } } return -1; } // Job class to store the start time, end time, and profit of a job class Job { int start, end, profit; public Job(int start, int end, int profit) { this.start = start; this.end = end; this.profit = profit; } } }

  • @bertieraisin8250
    @bertieraisin8250 11 หลายเดือนก่อน

    🌸 'PromoSM'