- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Cell fusion in Python
Suppose we have a list of numbers called cells; this list is representing sizes of different cells. Now, in each iteration, the two largest cells a and b interact according to these rules: So, If a = b, they both die. Otherwise, the two cells merge and their size becomes floor of ((a + b) / 3). We have to find the size of the last cell or return -1 if there's no cell is remaining.
So, if the input is like [20,40,40,30], then the output will be 16, in first iteration, 40 and 40 will die, then 20 and 30 become floor of ((20+30) / 3) = floor of 50/3 = 16
To solve this, we will follow these steps −
cells := convert each value of cells array negative
make a heap with cells
while cells is not empty, do −
delete two elements from cells and convert them negative again, and assign them as first and second consecutively
if first is not equal to second, then −
insert negative of floor of (first+second)/3) into heap
return negative of cells[0] if cells has some elements otherwise - 1
Let us see the following implementation to get better understanding −
Example
from heapq import heapify, heappop, heappush class Solution: def solve(self, cells): cells=[-x for x in cells] heapify(cells) while len(cells)>1: first,second = -heappop(cells), -heappop(cells) if first!=second: heappush(cells, -((first+second)//3)) return -cells[0] if cells else -1 ob = Solution() cells = [20,40,40,30] print(ob.solve(cells))
Input
[20,40,40,30]
Output
16
- Related Articles
- Controlled Thermonuclear Fusion
- Cell Count After Removing Corner Diagonals in Python
- Define latent heat of fusion.
- Program to find largest island after changing one water cell to land cell in Python
- C++ Program to Implement Fusion Tree
- DIRECTIONS: Read the passage(s) given below and answer the questions that follow. Passage- The cell which results after fusion of gametes is called a zygote. The fusion of male and female gametes (to form a zygote) is called fertilization. The zygote develops into an embryo. The cell which results after fusion of male gametes and female gametes is called(a) zygote(b) fertilization(c) embryo(d) none of these
- What is the latent heat of fusion?
- What is Nuclear fission and Nuclear fusion?
- How is pelvic bone formed?(a) By the fusion of three bones(b) By the fusion of two bones(c) By the fusion of four bones(d) None of these
- Cell Cycle and Cell Division
- Difference between Fusion Welding and Solid State Welding
- A cell that is spherical in shape is:(a) white blood cell(b) nerve cell(c) red blood cell(d) amoeba
- Which of the following cells can change their shape?(a) White blood cell and amoeba cell(b) Amoeba cell and red blood cell(c) White blood cell and euglena cell(d) Amoeba cell and euglena cell
- Program to find next state of next cell matrix state in Python?
- What are glass case, Li-ion Cell, battery cell, and pencil cell?
