current position:Home>leetcode 1860. Incremental Memory Leak(python)

leetcode 1860. Incremental Memory Leak(python)

2022-01-31 19:01:57 Wang Daya

「 This is my participation 11 The fourth of the yuegengwen challenge 18 God , Check out the activity details :2021 One last more challenge

describe

You are given two integers memory1 and memory2 representing the available memory in bits on two memory sticks. There is currently a faulty program running that consumes an increasing amount of memory every second.

At the ith second (starting from 1), i bits of memory are allocated to the stick with more available memory (or from the first memory stick if both have the same available memory). If neither stick has at least i bits of available memory, the program crashes.

Return an array containing [crashTime, memory1crash, memory2crash], where crashTime is the time (in seconds) when the program crashed and memory1crash and memory2crash are the available bits of memory in the first and second sticks respectively.

Example 1:

Input: memory1 = 2, memory2 = 2
Output: [3,1,0]
Explanation: The memory is allocated as follows:
- At the 1st second, 1 bit of memory is allocated to stick 1. The first stick now has 1 bit of available memory.
- At the 2nd second, 2 bits of memory are allocated to stick 2. The second stick now has 0 bits of available memory.
- At the 3rd second, the program crashes. The sticks have 1 and 0 bits available respectively.
 Copy code 

Example 2:

Input: memory1 = 8, memory2 = 11
Output: [6,0,4]
Explanation: The memory is allocated as follows:
- At the 1st second, 1 bit of memory is allocated to stick 2. The second stick now has 10 bit of available memory.
- At the 2nd second, 2 bits of memory are allocated to stick 2. The second stick now has 8 bits of available memory.
- At the 3rd second, 3 bits of memory are allocated to stick 1. The first stick now has 5 bits of available memory.
- At the 4th second, 4 bits of memory are allocated to stick 2. The second stick now has 4 bits of available memory.
- At the 5th second, 5 bits of memory are allocated to stick 1. The first stick now has 0 bits of available memory.
- At the 6th second, the program crashes. The sticks have 0 and 4 bits available respectively.
 Copy code 

Note:

0 <= memory1, memory2 <= 2^31 - 1
 Copy code 

analysis

According to the meaning , Give two integers memory1 and memory2, Represents the number of available memory bits on two memory modules respectively . There is currently an incorrect program running , More and more memory is consumed per second . In the i second ( from 1 Start ) Need to partition on memory modules with more space i Bit memory space ( If two memory modules have the same available memory , Then divide the space from the first memory module ). If neither memory module has at least i Bit available memory , The program will crash .

Returns a containing [crashTime, memory1crash, memory2crash] Array of , among crashTime It's when the program crashes ( In seconds ), and memory1crash and memory2crash Are the remaining available memory bits in the first and second memory modules respectively .

The problem is very simple , Just imitate the meaning of the question directly and write code , If both memory modules are available for the second i The size used in seconds is i Bit space , Then divide space on a memory module . The key is that there are more memory modules in each partition ; If the space remaining on the two memory modules is equal , On the first memory module .

answer

class Solution(object):
    def memLeak(self, memory1, memory2):
        """
        :type memory1: int
        :type memory2: int
        :rtype: List[int]
        """
        i = 1
        while max(memory1, memory2)>=i:
            if memory1>=memory2:
                memory1 -= i
            else:
                memory2 -= i
            i += 1
        return [i, memory1, memory2]

        	      
		
 Copy code 

Running results

Runtime: 424 ms, faster than 40.00% of Python online submissions for Incremental Memory Leak.
Memory Usage: 13.4 MB, less than 76.67% of Python online submissions for Incremental Memory Leak.
 Copy code 

Original link :leetcode.com/problems/in…

Your support is my greatest motivation

copyright notice
author[Wang Daya],Please bring the original link to reprint, thank you.
https://en.pythonmana.com/2022/01/202201311901551663.html

Random recommended