<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5963370890691448449</id><updated>2024-11-06T08:14:25.541+05:30</updated><category term="Coding Problems"/><category term="LeetCode"/><category term="Data Structures"/><category term="GeeksForGeeks"/><category term="HackerRank"/><category term="Data Science"/><category term="Placement"/><title type='text'>CodeToSkill</title><subtitle type='html'>CodeToSkill provides a platform for technical interview preparation. It contains huge collection of competitive coding articles articles on various topics that improves your algorithmic skills and helps you crack interviews of top tech companies.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>47</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-3367862974270884002</id><published>2023-07-15T19:29:00.003+05:30</published><updated>2023-07-15T19:29:40.048+05:30</updated><title type='text'>AI PDF Query Master: Simplifying PDF Document Analysis with AI-Powered Natural Language Processing</title><content type='html'>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Introduction:&lt;/p&gt;&lt;p&gt;In today&#39;s digital age, vast amounts of information are stored in PDF documents, making it challenging for researchers, students, and professionals to extract valuable insights efficiently. However, with the advent of AI and natural language processing (NLP) technologies, analyzing and querying PDFs has become more accessible and convenient. The &quot;AI PDF Query Master&quot; is a web application that leverages the power of OpenAI&#39;s ChatGPT language model to enable users to interactively query uploaded PDF documents using natural language. This blog post will explore the features, benefits, and usage of the AI PDF Query Master application.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Features and Benefits:&lt;/p&gt;&lt;p&gt;1. Upload PDF Documents:&lt;/p&gt;&lt;p&gt;The AI PDF Query Master allows users to easily upload their PDF files directly within the application. Users can drag and drop multiple PDFs or use the browse files feature to import them, providing a seamless experience.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2. Interactive Chat Interface:&lt;/p&gt;&lt;p&gt;The application offers a user-friendly chat interface where users can ask questions, seek information, and provide instructions to retrieve relevant details from the uploaded PDF documents. By conversing with the AI-powered ChatGPT model, users can obtain precise answers and insights.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;3. Natural Language Processing:&lt;/p&gt;&lt;p&gt;Powered by the OpenAI ChatGPT model, the AI PDF Query Master intelligently understands and responds to user queries in a conversational manner. It leverages NLP techniques to analyze the uploaded PDFs and extract pertinent information efficiently.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;4. Query History and Context:&lt;/p&gt;&lt;p&gt;To enhance the user experience, the application maintains a history of previous queries and preserves context during the conversation. Users can refer back to previous questions, continue the flow seamlessly, and explore related topics effectively.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;5. Fast and Accurate Results:&lt;/p&gt;&lt;p&gt;The AI PDF Query Master employs advanced NLP techniques and PDF processing capabilities to quickly analyze and extract relevant information from the uploaded PDFs. Users can expect fast and accurate results, saving them valuable time and effort.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgi8ZBvq7fH0XsM0LByatiqiBNWl8t4rrPBvF9r8LuU0PA9NJezX_0TPRLTLqEMDa--DK4vRnQ1aY8NYmZuqaObzCXawaMnwQ979F14RekOHgbXtRggG2C4Lh13046NOlKj1KjnjqYTerynjFy_9Wyic_nVUQ3tZ1BuQMVowhUVnGVcBCTzb-Bd3cxZe8Y&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1053&quot; data-original-width=&quot;1920&quot; height=&quot;176&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgi8ZBvq7fH0XsM0LByatiqiBNWl8t4rrPBvF9r8LuU0PA9NJezX_0TPRLTLqEMDa--DK4vRnQ1aY8NYmZuqaObzCXawaMnwQ979F14RekOHgbXtRggG2C4Lh13046NOlKj1KjnjqYTerynjFy_9Wyic_nVUQ3tZ1BuQMVowhUVnGVcBCTzb-Bd3cxZe8Y&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Usage:&lt;/p&gt;&lt;p&gt;To get started with the AI PDF Query Master, users need to follow a few simple steps:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1. Provide OpenAI API Key:&lt;/p&gt;&lt;p&gt;Users must provide their OpenAI API key, which can be obtained from the OpenAI platform. This key allows the application to access the necessary resources for AI-powered processing.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2. Upload PDFs:&lt;/p&gt;&lt;p&gt;Users can drag and drop their PDF files or use the browse files feature to import them into the application. Multiple PDFs can be uploaded simultaneously, enabling users to analyze and query extensive document collections conveniently.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg2tVmS2ERXg7qmL3eTmM8Mut2Gnt2iQotPR5ziFJ45YX8UP-P0b-ejkt8GGtDTpnt7hFq_2ccSutK7UFtmD9s6HfyXpamEyIKHb2NP2x42PCmxmoZq03KVOo8j3-oJOv0TFx7VTodIgHNNtVD3ST4ls89k0gPGrK8fTwbshnG9CFe4kF59vjVwhfLF5K8&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1053&quot; data-original-width=&quot;1920&quot; height=&quot;176&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg2tVmS2ERXg7qmL3eTmM8Mut2Gnt2iQotPR5ziFJ45YX8UP-P0b-ejkt8GGtDTpnt7hFq_2ccSutK7UFtmD9s6HfyXpamEyIKHb2NP2x42PCmxmoZq03KVOo8j3-oJOv0TFx7VTodIgHNNtVD3ST4ls89k0gPGrK8fTwbshnG9CFe4kF59vjVwhfLF5K8&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;3. Start the Conversation:&lt;/p&gt;&lt;p&gt;Once the PDFs are uploaded, users can enter their queries or questions in the chat interface. The AI PDF Query Master will process the queries using the ChatGPT model and provide relevant answers based on the content of the uploaded PDFs.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Conclusion:&lt;/p&gt;&lt;p&gt;The AI PDF Query Master is a powerful web application that harnesses the capabilities of OpenAI&#39;s ChatGPT language model to simplify the extraction of insights and knowledge from PDF documents. With its user-friendly chat interface, natural language processing capabilities, and fast results, the AI PDF Query Master is an invaluable tool for researchers, students, and professionals working with extensive document repositories. By leveraging AI and NLP technologies, this application empowers users to unlock the potential of their PDF documents and streamline their information retrieval process. Experience the power of AI-assisted PDF querying today with the AI PDF Query Master!&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Note: The code provided in the question is incomplete and may not function as expected. Additional code or modifications may be necessary for a fully functional application.&lt;/p&gt;&lt;p&gt;CODE:&lt;a href=&quot;https://github.com/VAMSINADH2000/AI-PDF-Query-Master&quot;&gt;https://github.com/VAMSINADH2000/AI-PDF-Query-Master&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/3367862974270884002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/3367862974270884002' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/3367862974270884002'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/3367862974270884002'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2023/07/ai-pdf-query-master-simplifying-pdf.html' title='AI PDF Query Master: Simplifying PDF Document Analysis with AI-Powered Natural Language Processing'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEgi8ZBvq7fH0XsM0LByatiqiBNWl8t4rrPBvF9r8LuU0PA9NJezX_0TPRLTLqEMDa--DK4vRnQ1aY8NYmZuqaObzCXawaMnwQ979F14RekOHgbXtRggG2C4Lh13046NOlKj1KjnjqYTerynjFy_9Wyic_nVUQ3tZ1BuQMVowhUVnGVcBCTzb-Bd3cxZe8Y=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-5880633538369578658</id><published>2021-05-14T17:41:00.005+05:30</published><updated>2021-05-14T17:45:58.199+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Coding Problems"/><category scheme="http://www.blogger.com/atom/ns#" term="LeetCode"/><title type='text'>Roman to Integer Leetcode Python Solution</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMDBDOMC6vOO3bBywW78JjEqBfPeuNMM5MU0n03NQAVRC8HUvmKewMQNU5yekEryWhm8PQyVmJiIg0pM4__0i383lT5CRMTyn-_nhd-i2zpzq6fBKQva9EgkteAdlMnmHu3TfiI7iKyyc/s357/leetcode.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;105&quot; data-original-width=&quot;357&quot; height=&quot;198&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMDBDOMC6vOO3bBywW78JjEqBfPeuNMM5MU0n03NQAVRC8HUvmKewMQNU5yekEryWhm8PQyVmJiIg0pM4__0i383lT5CRMTyn-_nhd-i2zpzq6fBKQva9EgkteAdlMnmHu3TfiI7iKyyc/w674-h198/leetcode.png&quot; width=&quot;674&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp;class Solution:&lt;/span&gt;&lt;br style=&quot;font-size: x-large;&quot; /&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp; &amp;nbsp; def romanToInt(self, s: str) -&amp;gt; int:&lt;/span&gt;&lt;br style=&quot;font-size: x-large;&quot; /&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; roman = {&#39;I&#39;:1,&lt;/span&gt;&lt;br style=&quot;font-size: x-large;&quot; /&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39;V&#39;:5,&lt;/span&gt;&lt;br style=&quot;font-size: x-large;&quot; /&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39;X&#39;:10,&lt;/span&gt;&lt;br style=&quot;font-size: x-large;&quot; /&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39;L&#39;:50,&lt;/span&gt;&lt;br style=&quot;font-size: x-large;&quot; /&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39;C&#39;:100,&lt;/span&gt;&lt;br style=&quot;font-size: x-large;&quot; /&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39;D&#39;:500,&lt;/span&gt;&lt;br style=&quot;font-size: x-large;&quot; /&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39;M&#39;:1000}&lt;/span&gt;&lt;br style=&quot;font-size: x-large;&quot; /&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; res = 0&lt;/span&gt;&lt;br style=&quot;font-size: x-large;&quot; /&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; s = list(s)&lt;/span&gt;&lt;br style=&quot;font-size: x-large;&quot; /&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i in range(len(s)):&lt;/span&gt;&lt;br style=&quot;font-size: x-large;&quot; /&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if res==0:&lt;/span&gt;&lt;br style=&quot;font-size: x-large;&quot; /&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; res+=roman[s[i]]&lt;/span&gt;&lt;br style=&quot;font-size: x-large;&quot; /&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; continue&lt;/span&gt;&lt;br style=&quot;font-size: x-large;&quot; /&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if roman[s[i]]&amp;gt;roman[s[i-1]]:&lt;/span&gt;&lt;br style=&quot;font-size: x-large;&quot; /&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; res = res + roman[s[i]] - 2*roman[s[i-1]]&lt;/span&gt;&lt;br style=&quot;font-size: x-large;&quot; /&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; continue&lt;/span&gt;&lt;br style=&quot;font-size: x-large;&quot; /&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; res+=roman[s[i]]&lt;/span&gt;&lt;br style=&quot;font-size: x-large;&quot; /&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return res&lt;/span&gt;&lt;br style=&quot;font-size: x-large;&quot; /&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;font-size: x-large;&quot; /&gt;&lt;span style=&quot;color: #0b5394; font-size: x-large;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;div style=&quot;height: 0px; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/5880633538369578658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/5880633538369578658' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/5880633538369578658'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/5880633538369578658'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2021/05/roman-to-integer-leetcode-python.html' title='Roman to Integer Leetcode Python Solution'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMDBDOMC6vOO3bBywW78JjEqBfPeuNMM5MU0n03NQAVRC8HUvmKewMQNU5yekEryWhm8PQyVmJiIg0pM4__0i383lT5CRMTyn-_nhd-i2zpzq6fBKQva9EgkteAdlMnmHu3TfiI7iKyyc/s72-w674-h198-c/leetcode.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-7239660001826923429</id><published>2020-12-12T10:18:00.003+05:30</published><updated>2020-12-12T10:18:55.518+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Placement"/><title type='text'>All Popular Sorting Algorithms in Python</title><content type='html'>&lt;h3 style=&quot;text-align: left;&quot;&gt;Here are Some Sorting Algorithms that are basically implemented in python&lt;/h3&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZAWwujw6prpZriL2WUB8ADHlBkmJuMSR8lerlJipUpiVC_xMXDQOsaMLfItzEdkyvMCunDrwBh7iJdCtC8yxgaX-n1TkMwzBAoSN7DRk60_MZLwVA7HmHAlZLn5hyphenhyphenvN3gQx3MQK7RH8c/s700/algo.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;347&quot; data-original-width=&quot;700&quot; height=&quot;318&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZAWwujw6prpZriL2WUB8ADHlBkmJuMSR8lerlJipUpiVC_xMXDQOsaMLfItzEdkyvMCunDrwBh7iJdCtC8yxgaX-n1TkMwzBAoSN7DRk60_MZLwVA7HmHAlZLn5hyphenhyphenvN3gQx3MQK7RH8c/w640-h318/algo.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Bubble Sort:&lt;/h3&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;def&lt;/span&gt; bubble_sort(lst):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; length = len(lst) - 1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; sorted = False&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; while not sorted:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sorted = True&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i in range(length):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if lst[i] &amp;gt; lst[i + 1]:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lst[i], lst[i + 1] = lst[i + 1], lst[i]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sorted = False&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; return lst&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;print(bubble_sort([7, 10, 4, 3, 20, 15]))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Insertion Sort:&lt;/h3&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;def&lt;/span&gt; insertion_sort(lst):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; for i in range(1,len(lst)):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; val_to_sort = lst[i]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while lst[i-1] &amp;gt; val_to_sort and i &amp;gt; 0:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lst[i-1],lst[i] = lst[i],lst[i-1]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; i-=1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; return lst&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;print(insertion_sort([9,8,7,6,5,4,3,2,1]))&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Merge Sort:&lt;/h3&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;def&lt;/span&gt; merge_sort(arr):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; if len(arr) &amp;lt;= 1:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; mid = len(arr)//2&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; left = arr[:mid]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; right = arr[mid:]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; # print(left,right)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; merge_sort(left)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; merge_sort(right)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; merge_two(left, right, arr)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;def&lt;/span&gt; merge_two(a,b,arr):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; len_a = len(a)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; len_b = len(b)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; i = j = k = 0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; while i &amp;lt; len_a and j &amp;lt; len_b:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if a[i] &amp;lt;= b[j]:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; arr[k] = a[i]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; i+=1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; arr[k] = b[j]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; j+=1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; k+=1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; while i &amp;lt; len_a:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; arr[k] = a[i]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; i+=1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; k+=1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; while j &amp;lt; len_b:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; arr[k] = b[j]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; j+=1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; k+=1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;array = [9,8,7,4,5,6,3,2,1]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;merge_sort(array)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;print(array)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Quick Sort&lt;/span&gt;&lt;/h3&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;def&lt;/span&gt; quick_sort(sequence):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; length = len(sequence)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; if length &amp;lt;=1:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return sequence&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; else:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pivot = sequence.pop()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; items_greater = []&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; items_lower = []&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for item in sequence:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if item &amp;gt; pivot:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; items_greater.append(item)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; items_lower.append(item)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; return quick_sort(items_lower) + [pivot] + quick_sort(items_greater)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;print(quick_sort([9,8,7,6,5,4,3,2,1]))&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Selection Sort:&lt;/h3&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;def&lt;/span&gt; selection_sort(lst):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; n = len(lst)-1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; for i in range(n):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mini_value = i&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for j in range(i+1,n+1):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if lst[j] &amp;lt; lst[mini_value]:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mini_value = j&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if mini_value !=i:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lst[mini_value],lst[i] = lst[i],lst[mini_value]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; return lst&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;print(selection_sort([9,8,7,6,5,4,3,2,1]))&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;Box-header py-2 d-flex flex-column flex-shrink-0 flex-md-row flex-md-items-center&quot; style=&quot;align-items: center; border-top-left-radius: 6px; border-top-right-radius: 6px; border: 1px solid var(--color-border-primary); box-sizing: border-box; color: #c9d1d9; display: flex; flex-direction: row; flex-shrink: 0; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 14px; margin: -1px -1px 0px; padding-bottom: 8px !important; padding-left: 16px; padding-right: 16px; padding-top: 8px !important; padding: 8px 16px;&quot;&gt;&lt;div class=&quot;d-flex py-1 py-md-0 flex-auto flex-order-1 flex-md-order-2 flex-sm-grow-0 flex-justify-between&quot; style=&quot;box-sizing: border-box; display: flex; flex: 0 1 auto; justify-content: space-between; order: 2; padding-bottom: 0px; padding-top: 0px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;form accept-charset=&quot;UTF-8&quot; action=&quot;https://github.com/VAMSINADH2000/Algorithms/delete/master/Bubble%20Sort.py&quot; class=&quot;inline-form&quot; method=&quot;post&quot; style=&quot;box-sizing: border-box; display: inline-block;&quot;&gt;&lt;/form&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;Box-body p-0 blob-wrapper data type-python gist-border-0&quot; itemprop=&quot;text&quot; style=&quot;border-bottom-left-radius: 6px; border-bottom-right-radius: 6px; border-bottom: 1px solid var(--color-border-primary); box-sizing: border-box; color: #c9d1d9; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 14px; margin-bottom: -1px; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/7239660001826923429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/7239660001826923429' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/7239660001826923429'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/7239660001826923429'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/12/all-popular-sorting-algorithms-in-python.html' title='All Popular Sorting Algorithms in Python'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZAWwujw6prpZriL2WUB8ADHlBkmJuMSR8lerlJipUpiVC_xMXDQOsaMLfItzEdkyvMCunDrwBh7iJdCtC8yxgaX-n1TkMwzBAoSN7DRk60_MZLwVA7HmHAlZLn5hyphenhyphenvN3gQx3MQK7RH8c/s72-w640-h318-c/algo.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-7293258661890011820</id><published>2020-10-04T09:18:00.004+05:30</published><updated>2020-10-04T09:41:43.813+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data Science"/><category scheme="http://www.blogger.com/atom/ns#" term="Placement"/><title type='text'>Everything You Need To Know To Become a Python Master</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgys97i1e0nQrI4MJYXTXF6HXyZh8jB8TKt2XFQum32S6yEz4335lkDcjwSobDC0zDEslHva50Ga2OCrL6nifrFbsjXb0QiOkaw90kvRavzVy96EDhJWv8B89y5RmzoDMEySJypo-cJAVM/s1600/python-modern-programming-language-software-development-application-concept-multi-color-arrows-pointing-to-word-152119837.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1155&quot; data-original-width=&quot;1600&quot; height=&quot;462&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgys97i1e0nQrI4MJYXTXF6HXyZh8jB8TKt2XFQum32S6yEz4335lkDcjwSobDC0zDEslHva50Ga2OCrL6nifrFbsjXb0QiOkaw90kvRavzVy96EDhJWv8B89y5RmzoDMEySJypo-cJAVM/w640-h462/python-modern-programming-language-software-development-application-concept-multi-color-arrows-pointing-to-word-152119837.jpg&quot; width=&quot;640&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-family: helvetica; font-size: x-small;&quot;&gt;Image credits:&amp;nbsp;www.dreamstime.com&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;In this blog we would all be doing is discussing the topics and
skills that you need to learn to become a master at the Python programming
language. Now I&#39;ve broken these skills up into three main categories. Those are&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;1.Basic &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;2.Intermediate &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;3.Advanced/ master level. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ffa400; font-family: helvetica; font-size: large;&quot;&gt;1.Basic&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;&lt;span&gt;This is really focusing on just fundamental programming
concepts and really understanding like the basic, basic building blocks of
programming. So the core syntax, the way a program actually reads, &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;the way the different lines of codes are going
to be executed, conditions, variables, all that kind of stuff. So you want to
understand how variables work. So, you know, X equals one, Y equals two X
equals Y what does X equal? You know, just the basics like that and
understanding why we even use variables in programming then probably moving
forward into conditions. So Boolean conditions, you know, how do we compare two
different variables together? How do we check if the user typed something in
and it&#39;s equal to something else, chaining conditionals together. So, okay. How
can we make a chain conditional that has more than one condition in it? How do
we evaluate, you know, this condition and that condition at the same time.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Next
that&#39;s going to be operators that you want to learn,how do we add two
variables subtract two variables. What is the modulates operator do into your
division? Just these basic tools that you&#39;re going to need to be using. As soon
as you get out of this basic level, then after that, it&#39;s probably going to go
to control flow. So it&#39;s things like if else, else, if you&#39;re going to want to
master those, then just learning about loops and Iterable. So for loops, while
loops, how do we loop through a list? How do we loop through a dictionary that
leads me nicely into what else I would recommend learning, which is basic data
structures in Python. So understanding lists, understanding, sets,
understanding dictionaries, what about strings booleans ins floats. That&#39;s all
stuff that you really need to master after that. And you&#39;ve learned kind of the
core basic syntax and language features of Python.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Then you&#39;re probably going
to move into functions. Functions are really important, a huge part of Python,
and really will teach you a lot if you can understand how those work. Then
after you&#39;ve done that, try to learn about some of the common methods in
Python. So for example, if you have a string, how do you turn that string into
all uppercase or all lowercase? How do you add a new element to a list or add a
new element to a set, just kind of these basics, operations and methods, which
are really easy to learn and find it, but that you kinda need to know before
moving much,much further. And then finally I would recommend having a basic
knowledge of IO operations.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;After learning all these I would strongly suggest you to
practice these things in any one of the competitive programming website.(HackerRank,LeetCode,HackerEarth..etc)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;color: #ffa400; font-family: helvetica; font-size: large;&quot;&gt;&lt;b&gt;2.Intermediate&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;The first thing that I&#39;m going to focus on here and
intermediate skills is object oriented, programming, understanding classes and
understanding objects. So this goes a really long way, and this is something
that you&#39;re going to want to understand, especially if you&#39;re using other
languages other than Python, uh, but super important. It&#39;s used pretty much
everywhere. And if you only get one thing from this intermediate section,
understand that you have to have a really good foundation and object oriented
programming to really understand anything above this level.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;And then after
you&#39;ve learned that I would recommend you move into data structures. So once
you have a solid foundation of object oriented, you want to learn about data
structures &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;understanding the ques, you
know, hash maps, the stacks priority cues, whatever it may be, you just need to
understand those topics cause they will come up and understanding the
efficiency and time complexity in big O notation is actually really important
when it comes to becoming a good programmer.If you see them next, I would
recommend you learn about Lambda functions. So these are anonymous functions.
They&#39;re actually super useful. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;color: #ffa400; font-family: helvetica; font-size: large;&quot;&gt;&lt;b&gt;3.Advanced&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;I want to be clear here that a lot of the topics in this
section you don&#39;t really need to know to be good at Python, right? To consider
yourself a Python developer to go work as a software engineer, you don&#39;t need
to know most of what I&#39;m going to describe here. if you know the basic and
intermediate stuff, you can learn this when you need to learn it kind of thing.
So yeah, just don&#39;t be discouraged if you don&#39;t already know these things.The
first thing I have is decorators. if you have like a class method, a static
method and UCL at static method at class method at login required, those are
examples of decorators, things that decorate a function or a method. I think
you can decorate a class as well. Generators are a way to kind of utilize
memory efficiently in Python. Let&#39;s say you have a really long collection or
you&#39;re generating a collection rather than just generating the entire thing.
You can generate one item at a time. If you only need access to one item from
that collection at a time, or maybe two items or three items or something like
that, you can use a generator to do that.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;Next we have medic classes. These are
too advanced, even really give a basic description, but they are pretty much
how Python classes actually operate and allow you to do some really advanced
things with classes, hook into some things that you can&#39;t usually hook into
unless you know about them. And then next after you learn about decorators,
generators, context, pantries, and yeah, medic classes, I would recommend
learning about concurrency and parallelism. So say you have a CPU core that has
four processing cores on it. So for actual CPU, how can you use Python to
utilize all of those cores? Well, that&#39;s when you&#39;re going to learn about
something called a global interpreter lock, and then you can talk about
multiprocessing and multithreading so multithreading is essentially how do we
let one part of our program kind of wait while the other program is doing
something and how do we not block pieces of code, when they don&#39;t need to be
blocked. So that&#39;s a really vague definition of it, but that should hopefully
give you a little bit of an idea.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;It&#39;s pretty much revolving around speed
within the Python language, then I would get into testing. So once you&#39;ve
learned all of those, I would learn about unit testing and how you can actually
do test driven development in Python or in whatever programming language, just
understanding testing pipelines. And all of that is very important. Then I
would learn about how you actually build and manipulate packages. So packages
are different than modules, but I throw this in the advanced section because if
you&#39;re writing enough code that you could fill a module, a package you&#39;re
probably advanced.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;Resources that I recommend to learn Python for free:&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;color: #b4a7d6; font-family: helvetica; font-size: large;&quot;&gt;&lt;a href=&quot;https://www.youtube.com/playlist?list=PLsyeobzWxl7poL9JTVyndKe62ieoN-MZ3&quot; target=&quot;_blank&quot;&gt;1.Telusko Youtube Channel&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;&lt;a href=&quot;https://www.youtube.com/c/TechWithTim/playlists&quot; target=&quot;_blank&quot;&gt;2.Tech with Tim&amp;nbsp;Youtube Channel&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;&lt;a href=&quot;https://www.youtube.com/user/schafer5&quot; target=&quot;_blank&quot;&gt;3.corey schafer&amp;nbsp;Youtube Channel&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;I think you should know if you&#39;re working towards becoming a
master in Python. So if this Blog helped you out.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;o:p&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;&lt;span&gt;Stay Tuned!&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;&lt;span&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333;&quot;&gt;😎&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #ea9999;&quot;&gt;HAPPY CODING&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;background-color: white; color: #333333;&quot;&gt;😎&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/7293258661890011820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/7293258661890011820' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/7293258661890011820'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/7293258661890011820'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/10/everything-you-need-to-know-to-become.html' title='Everything You Need To Know To Become a Python Master'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgys97i1e0nQrI4MJYXTXF6HXyZh8jB8TKt2XFQum32S6yEz4335lkDcjwSobDC0zDEslHva50Ga2OCrL6nifrFbsjXb0QiOkaw90kvRavzVy96EDhJWv8B89y5RmzoDMEySJypo-cJAVM/s72-w640-h462-c/python-modern-programming-language-software-development-application-concept-multi-color-arrows-pointing-to-word-152119837.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-6375596020350113675</id><published>2020-07-21T08:34:00.002+05:30</published><updated>2020-07-21T08:46:45.777+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Placement"/><title type='text'>How to Prepare for Placement Aptitude</title><content type='html'>&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpV0_iRFKGWoavmnj6JL6jQh3UJ-LrasqGv5LX6iOxPML2puqFbyGQqf_UVM_NZNr5g0u0zTZqR2lxpM9s-JPGIRbSWJv7v5XwWepkjTU_CexOiJus8C5fPxEgAczAlCE41cQvhyphenhyphenCzzGA/s1920/Aptitude.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1080&quot; data-original-width=&quot;1920&quot; height=&quot;351&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpV0_iRFKGWoavmnj6JL6jQh3UJ-LrasqGv5LX6iOxPML2puqFbyGQqf_UVM_NZNr5g0u0zTZqR2lxpM9s-JPGIRbSWJv7v5XwWepkjTU_CexOiJus8C5fPxEgAczAlCE41cQvhyphenhyphenCzzGA/w625-h351/Aptitude.png&quot; width=&quot;625&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;I will discuss the preparation strategies for the aptitude test of campus placements this strategies has been prepared with the combined expertise of&amp;nbsp; trainers who have helped more than 15 lakh students get placed in the company of their choice.&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;Cracking the aptitude test is usually the toughest part of any recruitment process quite a few to do get rejected at this stage despite having good technical knowledge and communication skills. In aptitude test you compete with thousands of students where the cutoff is not usually pre decided so your performance along with the performance of your competitors decides whether you get selected for the next round or not that is why it is absolutely essential to be amongst the top scorers in the exam. Let us help you understand how you can achieve this.&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;The aptitude test consists of three sections quantitative aptitude, logical reasoning and verbal ability over all the major chapters that you have to cover are&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;1.numbers&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;2.ages&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;3.problems on trains&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;4.time and work&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;5.permutations and combinations&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;6.probability&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;7.relationship based questions&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;8.seating arrangements&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;9.para jumbles&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;10.sentence Corrections and&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;11.grammar&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;These chapters will definitely help in answering the bulk of questions asked for quantitative aptitude.Test yourself along with that be a regular on websites like &lt;a href=&quot;https://www.indiabix.com/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#ff0000&quot;&gt;India Bix&lt;/font&gt;&lt;/a&gt; and &lt;a href=&quot;https://lofoya.com/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#ff0000&quot;&gt;Lofoya&lt;/font&gt;&lt;/a&gt; from where you can get hundreds of free practice questions all questions do not carry equal important to emphasize on important topics like&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;1. number systems&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;2.time and work&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;3.permutations and combinations&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;4.probability&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;5.time speed and distance&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;6.percentage and ratios to name a few you don&#39;t have to practice hundreds of questions but it is necessary to practice questions of all types and all difficulty.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;If a topic has 50 questions be sure to try and solve all 50 without looking at solutions mark those which you could not solve and give them a try after it it if you are not able to solve even then look at the solutions and understand why you got them wrong and what is the concept behind them.&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;Logical reasoning chapters like&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;1.series completion&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;2.blood relations&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;3.directions&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;4.coding and decoding are important follow the same strategy as Kwan speed is really important in logical reasoning and only practice will help you achieve the desired score.&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;verbal ability is a different ballgame because you require a good grasp on the language communicating in English is the easiest way to practice grammar reading newspapers will also help you some important topics here are&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;1.Reading comprehension&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;2.para jumbles&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;3.grammar based sentence Corrections and&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;4.fill in the blanks along with synonyms antonyms and patter completion arrangement eyes questions.&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;In conclusion start from concepts and practice questions from websites thus mastering all sections topic by topic those who&amp;nbsp; aim for cracking the cutoff you will fall short of your goal aim to be amongst the top 2% and you will easily clear the cutoff.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;Don&#39;t learn shortcuts to solve problems when you are a beginner learn the concepts behind them so that you can able to crack tough problems.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;Prefered Books:1.Rs Agarwal&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;2.Aptipedia&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: &amp;quot;segoe ui emoji&amp;quot;; font-size: 49px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 👍&lt;/span&gt;&lt;font face=&quot;arial&quot; size=&quot;6&quot;&gt;ALL THE BEST&lt;/font&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: &amp;quot;segoe ui emoji&amp;quot;; font-size: 49px;&quot;&gt;👍&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/6375596020350113675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/6375596020350113675' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/6375596020350113675'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/6375596020350113675'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/07/how-to-prepare-for-placement-aptitude.html' title='How to Prepare for Placement Aptitude'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpV0_iRFKGWoavmnj6JL6jQh3UJ-LrasqGv5LX6iOxPML2puqFbyGQqf_UVM_NZNr5g0u0zTZqR2lxpM9s-JPGIRbSWJv7v5XwWepkjTU_CexOiJus8C5fPxEgAczAlCE41cQvhyphenhyphenCzzGA/s72-w625-h351-c/Aptitude.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-5065055751903554242</id><published>2020-07-12T09:17:00.002+05:30</published><updated>2020-07-12T09:18:03.804+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Coding Problems"/><category scheme="http://www.blogger.com/atom/ns#" term="GeeksForGeeks"/><category scheme="http://www.blogger.com/atom/ns#" term="HackerRank"/><category scheme="http://www.blogger.com/atom/ns#" term="LeetCode"/><title type='text'>Subsets LeetCode Solution</title><content type='html'>&lt;h1&gt;&lt;font color=&quot;#3367d6&quot;&gt;Subsets LeetCode&lt;/font&gt;&lt;/h1&gt;&lt;p&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;font color=&quot;#ff0000&quot;&gt;Quoestion:&amp;nbsp;&lt;/font&gt;For the given set find all unique subsets i.e,powerset&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisz86gp1dzJr5VPcwb28SujwOj1tzbgMQn5Xb7xqVSXOmKVFGHr8dMN_LVYdGAa-SF7O3GbNjIJqF4XnBy1CRTBN-chCnJARarm-yFDY_M8MgzEy7rqnYF8pJjHZqh7m8OWOF9xIYXoYA/s910/lithuania-vilnius-minimal-minimalism.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;607&quot; data-original-width=&quot;910&quot; height=&quot;335&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisz86gp1dzJr5VPcwb28SujwOj1tzbgMQn5Xb7xqVSXOmKVFGHr8dMN_LVYdGAa-SF7O3GbNjIJqF4XnBy1CRTBN-chCnJARarm-yFDY_M8MgzEy7rqnYF8pJjHZqh7m8OWOF9xIYXoYA/w500-h335/lithuania-vilnius-minimal-minimalism.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;For Example:&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;set = [1,2,3]&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;powerset=&lt;/font&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333;&quot;&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;&lt;font color=&quot;#ff0000&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;Approach:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333;&quot;&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;1.intialize powerset with empty List&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333;&quot;&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;2.Add 1st element ([[],[1]])&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333;&quot;&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;3.Add 2nd element and add possible unique combinations of 1st and 2nd elements.(&lt;/font&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; font-family: arial; font-size: x-large;&quot;&gt;[[],[1],[2],[1,2]])&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333;&quot;&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;4.repeat above step until size of powerset is 2^n&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333;&quot;&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;5.return Powerset&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333;&quot;&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;&lt;font color=&quot;#ff0000&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;Python Code:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3367d6&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;class Solution(object):&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3367d6&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; def subsets(self, nums):&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3367d6&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; powerset=[[]]&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3367d6&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; n = len(nums)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3367d6&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if n == 0:&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3367d6&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return powerset&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3367d6&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i in nums:&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3367d6&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for j in range(len(powerset)):&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3367d6&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(len(powerset))&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3367d6&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; temp = powerset[j]+[i]&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3367d6&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; powerset.append(temp)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3367d6&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3367d6&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return powerset&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#ff0000&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;Python One Liner:&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3367d6&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;from itertools import chain, combinations&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #3367d6; font-family: arial; font-size: x-large;&quot;&gt;class Solution(object):&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #3367d6; font-family: arial; font-size: x-large;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;def subsets(self,nums):&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3367d6&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; temp = list(nums)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3367d6&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return chain.from_iterable(combinations(temp, i) for i in range(len(nums)+1))&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3367d6&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3367d6&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#0b8043&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;a href=&quot;https://leetcode.com/explore/challenge/card/july-leetcoding-challenge/545/week-2-july-8th-july-14th/3387/&quot; target=&quot;_blank&quot;&gt;Try Problem in LeetCode&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333;&quot;&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333;&quot;&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333;&quot;&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333;&quot;&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333;&quot;&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333;&quot;&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/5065055751903554242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/5065055751903554242' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/5065055751903554242'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/5065055751903554242'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/07/subsets-leetcode-solution.html' title='Subsets LeetCode Solution'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisz86gp1dzJr5VPcwb28SujwOj1tzbgMQn5Xb7xqVSXOmKVFGHr8dMN_LVYdGAa-SF7O3GbNjIJqF4XnBy1CRTBN-chCnJARarm-yFDY_M8MgzEy7rqnYF8pJjHZqh7m8OWOF9xIYXoYA/s72-w500-h335-c/lithuania-vilnius-minimal-minimalism.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-5796742697545527279</id><published>2020-07-10T07:32:00.004+05:30</published><updated>2020-09-18T11:52:33.607+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Coding Problems"/><category scheme="http://www.blogger.com/atom/ns#" term="Data Structures"/><category scheme="http://www.blogger.com/atom/ns#" term="GeeksForGeeks"/><category scheme="http://www.blogger.com/atom/ns#" term="HackerRank"/><category scheme="http://www.blogger.com/atom/ns#" term="LeetCode"/><title type='text'>  Maximum Width of Binary Tree LeetCode Solution</title><content type='html'>&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;Quoestion:&lt;a href=&quot;https://leetcode.com/explore/featured/card/july-leetcoding-challenge/545/week-2-july-8th-july-14th/3385/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#0f9d58&quot;&gt;Click Here&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;Approach Using BFS:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;we use BFS or level order traversal.we keep tarck of level,index of each node in queue for calculating max width.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhs07VwbFA0WQfxoS3Gp9AmGD9vKZ5xjUywLs0i3ubUPNeaqJaUYmP0ZXETfS7ymk8Dv8cZFoYK0-exgTkRkiBpSGueHa6Z_wCAwkdBR-hBZo9KMMdVib6KYveCRhk7ntXC0088Msy1R4/s357/download.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;105&quot; data-original-width=&quot;357&quot; height=&quot;148&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhs07VwbFA0WQfxoS3Gp9AmGD9vKZ5xjUywLs0i3ubUPNeaqJaUYmP0ZXETfS7ymk8Dv8cZFoYK0-exgTkRkiBpSGueHa6Z_wCAwkdBR-hBZo9KMMdVib6KYveCRhk7ntXC0088Msy1R4/w500-h148/download.png&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;Algorithm:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;1.if root=null;return 0&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;2.create a queue to store the index,level,TreeNode&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;3.we fill indexes according to the following&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; indexof_leftchild = (2*(index_of_root))&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;indexof_rightchild = (2*(index_of_root)+1)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;4.we pop the first item in queue and check for level if cur_level &amp;gt; prev_level we update them&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;5.maximum width will be max(prev_width,(cur_idx-idx_old)+1)&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;6.return maxwidth&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;TimeComplexity:O(N)&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;SpaceComplexity:O(N)&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;Python Code:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#4285f4&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot;&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;font color=&quot;#4285f4&quot;&gt;# Definition for a binary tree node.&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;font color=&quot;#4285f4&quot;&gt;# class TreeNode(object):&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;font color=&quot;#4285f4&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp;def __init__(self, val=0, left=None, right=None):&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;font color=&quot;#4285f4&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;self.val = val&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;font color=&quot;#4285f4&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;self.left = left&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;font color=&quot;#4285f4&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;self.right = right&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;font color=&quot;#4285f4&quot;&gt;class Solution:&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;font color=&quot;#4285f4&quot;&gt;&amp;nbsp; &amp;nbsp; def widthOfBinaryTree(self, root):&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;font color=&quot;#4285f4&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; prev_level, idx_old, result = 1, 1, 0&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;font color=&quot;#4285f4&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; queue = [[prev_level,idx_old,root]]&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;font color=&quot;#4285f4&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;font color=&quot;#4285f4&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while queue:&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;font color=&quot;#4285f4&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [cur_idx, cur_level, node] = queue.pop(0)&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;font color=&quot;#4285f4&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if cur_level &amp;gt; prev_level:&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;font color=&quot;#4285f4&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; prev_level, idx_old = cur_level, cur_idx&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;font color=&quot;#4285f4&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result = max(result, cur_idx - idx_old + 1)&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;font color=&quot;#4285f4&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if node.left:&amp;nbsp; queue.append([cur_idx*2,&amp;nbsp; cur_level+1, node.left])&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;font color=&quot;#4285f4&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if node.right: queue.append([cur_idx*2+1,cur_level+1, node.right])&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;font color=&quot;#4285f4&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;font color=&quot;#4285f4&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return result&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://leetcode.com/explore/featured/card/july-leetcoding-challenge/545/week-2-july-8th-july-14th/3385/&quot; target=&quot;_blank&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#0f9d58&quot; size=&quot;5&quot;&gt;&lt;a href=&quot;https://leetcode.com/explore/featured/card/july-leetcoding-challenge/545/week-2-july-8th-july-14th/3385/&quot; target=&quot;_blank&quot;&gt;Try Problem In LeetCode&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/5796742697545527279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/5796742697545527279' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/5796742697545527279'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/5796742697545527279'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/07/maximum-width-of-binary-tree-leetcode.html' title='  Maximum Width of Binary Tree LeetCode Solution'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhs07VwbFA0WQfxoS3Gp9AmGD9vKZ5xjUywLs0i3ubUPNeaqJaUYmP0ZXETfS7ymk8Dv8cZFoYK0-exgTkRkiBpSGueHa6Z_wCAwkdBR-hBZo9KMMdVib6KYveCRhk7ntXC0088Msy1R4/s72-w500-h148-c/download.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-286760516016061026</id><published>2020-07-09T10:30:00.010+05:30</published><updated>2020-09-18T11:55:51.233+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Coding Problems"/><category scheme="http://www.blogger.com/atom/ns#" term="LeetCode"/><title type='text'>  3Sum LeetCode Solution</title><content type='html'>&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;font color=&quot;#ffffff&quot; style=&quot;background-color: red;&quot;&gt;Quiestion:&lt;/font&gt;&lt;font color=&quot;#0f9d58&quot;&gt;&lt;a href=&quot;https://leetcode.com/explore/challenge/card/july-leetcoding-challenge/545/week-2-july-8th-july-14th/3384/&quot; target=&quot;_blank&quot;&gt;Click Here&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;div&gt;&lt;font color=&quot;#0f9d58&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMDBDOMC6vOO3bBywW78JjEqBfPeuNMM5MU0n03NQAVRC8HUvmKewMQNU5yekEryWhm8PQyVmJiIg0pM4__0i383lT5CRMTyn-_nhd-i2zpzq6fBKQva9EgkteAdlMnmHu3TfiI7iKyyc/s357/leetcode.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;105&quot; data-original-width=&quot;357&quot; height=&quot;118&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMDBDOMC6vOO3bBywW78JjEqBfPeuNMM5MU0n03NQAVRC8HUvmKewMQNU5yekEryWhm8PQyVmJiIg0pM4__0i383lT5CRMTyn-_nhd-i2zpzq6fBKQva9EgkteAdlMnmHu3TfiI7iKyyc/w400-h118/leetcode.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;font color=&quot;#0f9d58&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#ffffff&quot; face=&quot;arial&quot; size=&quot;5&quot; style=&quot;background-color: red;&quot;&gt;Approach:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;since we need to find triplet,we fix one nums[i] in given array then we traverse through array for the other two numbers such that their sum is equal to complement of nums[i](i.e,-(nums[i])) using two pointer technique.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;we fix low pointer next to the nums[i] and high pointer to the last element.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;if nums[i]+nums[low]+nums[high] &amp;lt;0&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; increase low pointer&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;if nums[i]+nums[low]+nums[high] &amp;gt;0&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; decrement high pointer&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;if nums[i]+nums[low]+nums[high] ==0&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; add&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;nums[i],nums[low],nums[high] to result list&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;span style=&quot;background-color: red;&quot;&gt;&lt;font color=&quot;#ffffff&quot;&gt;Python Code:&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;class Solution(object):&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; def threeSum(self, nums):&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; res = []&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nums.sort()&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i in range(len(nums)-2):&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if nums[i]&amp;gt;0: break #[7]&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if i&amp;gt;0 and nums[i]==nums[i-1]: continue&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; low,high = i+1,len(nums)-1&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while low &amp;lt; high:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if nums[i]+nums[low]+nums[high]==0:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; res.append([nums[i],nums[low],nums[high]])&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while low&amp;lt;high and nums[low]==nums[low+1]:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; low+=1&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while low&amp;lt;high and nums[high]==nums[high-1]:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; high-=1&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; low+=1&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; high-=1&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elif nums[i]+nums[low]+nums[high]&amp;lt;0:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; low+=1&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; high-=1&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return res&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#0f9d58&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;a href=&quot;https://github.com/VAMSINADH2000/LeetCode/blob/master/3Sum.py&quot; target=&quot;_blank&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#d52c1f&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;a href=&quot;https://github.com/VAMSINADH2000/LeetCode/blob/master/3Sum.py&quot; target=&quot;_blank&quot;&gt;click here for code&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#0f9d58&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;a href=&quot;https://leetcode.com/explore/challenge/card/july-leetcoding-challenge/545/week-2-july-8th-july-14th/3384/&quot; target=&quot;_blank&quot;&gt;Try Problem in leetcode&amp;nbsp;&lt;/a&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;font face=&quot;verdana&quot;&gt;&lt;font color=&quot;#f57c00&quot; size=&quot;6&quot;&gt;Happy Coding&amp;nbsp;&lt;/font&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;font size=&quot;6&quot;&gt;&lt;font color=&quot;#222222&quot;&gt;😃&lt;/font&gt;&lt;font color=&quot;#f57c00&quot;&gt;!&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/286760516016061026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/286760516016061026' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/286760516016061026'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/286760516016061026'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/07/3sum-leetcode-solution.html' title='  3Sum LeetCode Solution'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMDBDOMC6vOO3bBywW78JjEqBfPeuNMM5MU0n03NQAVRC8HUvmKewMQNU5yekEryWhm8PQyVmJiIg0pM4__0i383lT5CRMTyn-_nhd-i2zpzq6fBKQva9EgkteAdlMnmHu3TfiI7iKyyc/s72-w400-h118-c/leetcode.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-5626500091944235477</id><published>2020-07-08T09:02:00.000+05:30</published><updated>2020-07-08T09:02:23.396+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Coding Problems"/><category scheme="http://www.blogger.com/atom/ns#" term="LeetCode"/><title type='text'>  Island Perimeter LeetCode Solution</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisz86gp1dzJr5VPcwb28SujwOj1tzbgMQn5Xb7xqVSXOmKVFGHr8dMN_LVYdGAa-SF7O3GbNjIJqF4XnBy1CRTBN-chCnJARarm-yFDY_M8MgzEy7rqnYF8pJjHZqh7m8OWOF9xIYXoYA/s910/lithuania-vilnius-minimal-minimalism.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;607&quot; data-original-width=&quot;910&quot; height=&quot;335&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisz86gp1dzJr5VPcwb28SujwOj1tzbgMQn5Xb7xqVSXOmKVFGHr8dMN_LVYdGAa-SF7O3GbNjIJqF4XnBy1CRTBN-chCnJARarm-yFDY_M8MgzEy7rqnYF8pJjHZqh7m8OWOF9xIYXoYA/w500-h335/lithuania-vilnius-minimal-minimalism.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;font color=&quot;#ffffff&quot; style=&quot;background-color: #ff1414;&quot;&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Quoestion:&lt;/font&gt;&lt;a href=&quot;https://leetcode.com/explore/challenge/card/july-leetcoding-challenge/544/week-1-july-1st-july-7th/3383&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#0f9d58&quot;&gt;ClickHere&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;a href=&quot;https://leetcode.com/explore/challenge/card/july-leetcoding-challenge/544/week-1-july-1st-july-7th/3383&quot; target=&quot;_blank&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;a href=&quot;https://leetcode.com/explore/challenge/card/july-leetcoding-challenge/544/week-1-july-1st-july-7th/3383&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;105&quot; data-original-width=&quot;357&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMDBDOMC6vOO3bBywW78JjEqBfPeuNMM5MU0n03NQAVRC8HUvmKewMQNU5yekEryWhm8PQyVmJiIg0pM4__0i383lT5CRMTyn-_nhd-i2zpzq6fBKQva9EgkteAdlMnmHu3TfiI7iKyyc/s320/leetcode.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: red; color: white; font-family: arial; font-size: x-large;&quot;&gt;Approach:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;if value in the box is 1 then add 4 to result and check for adjacent boxes if they are also 1 if yes then decrement 2 in the result.because boxes connect using the perimeter and each box contibutes 1 so we reduce 1 + 1 in the result.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;img alt=&quot;&quot; src=&quot;data:image/png;base64,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&quot; /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border=&quot;1&quot; bordercolor=&quot;#888&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse: collapse; border-color: rgb(136, 136, 136); border-width: 1px; font-family: arial;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;font size=&quot;5&quot;&gt;0&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/td&gt;&lt;td&gt;&lt;font color=&quot;#d52c1f&quot; size=&quot;5&quot;&gt;1&lt;/font&gt;&lt;/td&gt;&lt;td&gt;&lt;font size=&quot;5&quot;&gt;0&amp;nbsp;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;font color=&quot;#d52c1f&quot; size=&quot;5&quot;&gt;1&lt;/font&gt;&lt;/td&gt;&lt;td&gt;&lt;font size=&quot;5&quot;&gt;&lt;font color=&quot;#d52c1f&quot;&gt;1&lt;/font&gt;&amp;nbsp;&lt;/font&gt;&lt;/td&gt;&lt;td&gt;&lt;font size=&quot;5&quot;&gt;0&amp;nbsp;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;min-width: 60px;&quot;&gt;&lt;font size=&quot;5&quot;&gt;0&lt;/font&gt;&lt;/td&gt;&lt;td style=&quot;min-width: 60px;&quot;&gt;&lt;font size=&quot;5&quot;&gt;0&amp;nbsp;&lt;/font&gt;&lt;/td&gt;&lt;td style=&quot;min-width: 60px;&quot;&gt;&lt;font color=&quot;#d52c1f&quot; size=&quot;5&quot;&gt;1&amp;nbsp;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;min-width: 60px;&quot;&gt;&lt;font color=&quot;#d52c1f&quot; size=&quot;5&quot;&gt;1&amp;nbsp;&lt;/font&gt;&lt;/td&gt;&lt;td style=&quot;min-width: 60px;&quot;&gt;&lt;font size=&quot;5&quot;&gt;0&amp;nbsp;&lt;/font&gt;&lt;/td&gt;&lt;td style=&quot;min-width: 60px;&quot;&gt;&lt;font size=&quot;5&quot;&gt;&lt;font color=&quot;#d52c1f&quot;&gt;1&lt;/font&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#ffffff&quot; face=&quot;arial&quot; size=&quot;5&quot; style=&quot;background-color: red;&quot;&gt;Algorithm:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;1.Intialize res variable&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;2.Loop from i:1 to rows&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; .loop from j:1 to columns&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; .if grid[i][j] =1 then,&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; .res= res +&amp;nbsp; 4&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; .if i &amp;gt;0 and grid[i-1][j]=1 then,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;.res= res- 2&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; .if j &amp;gt;0 and grid[i][j-1]=1 then,&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;.res= res- 2&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;3.return res&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#ffffff&quot; face=&quot;arial&quot; size=&quot;5&quot; style=&quot;background-color: red;&quot;&gt;Python Code:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;pre style=&quot;text-align: left;&quot;&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;class Solution(object):&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;def islandPerimeter(self, grid):&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; res = 0&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i in range(len(grid)):&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for j in range(len(grid[i])):&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if grid[i][j]==1:&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; res +=4&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if i&amp;gt;0 and grid[i-1][j]==1:&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; res-=2&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if j&amp;gt;0 and grid[i][j-1]==1:&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; res-=2&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return res&lt;/font&gt;&lt;/pre&gt;&lt;div&gt;&lt;font color=&quot;#ffffff&quot; face=&quot;arial&quot; size=&quot;5&quot; style=&quot;background-color: red;&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#ffffff&quot; face=&quot;arial&quot; size=&quot;5&quot; style=&quot;background-color: red;&quot;&gt;Shortened Python Code:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;div&gt;class Solution(object):&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; def islandPerimeter(self, g):&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; res = 0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i, p in enumerate(g):&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for j, q in enumerate(p):&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if q:&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; res += 4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if i &amp;gt; 0 and g[i-1][j]: res -= 2&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if j &amp;gt; 0 and g[i][j-1]: res -= 2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return res&lt;/div&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#0f9d58&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;a href=&quot;https://leetcode.com/explore/challenge/card/july-leetcoding-challenge/544/week-1-july-1st-july-7th/3383&quot; target=&quot;_blank&quot;&gt;Try Problem in LeetCode&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/5626500091944235477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/5626500091944235477' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/5626500091944235477'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/5626500091944235477'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/07/island-perimeter-leetcode-solution.html' title='  Island Perimeter LeetCode Solution'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisz86gp1dzJr5VPcwb28SujwOj1tzbgMQn5Xb7xqVSXOmKVFGHr8dMN_LVYdGAa-SF7O3GbNjIJqF4XnBy1CRTBN-chCnJARarm-yFDY_M8MgzEy7rqnYF8pJjHZqh7m8OWOF9xIYXoYA/s72-w500-h335-c/lithuania-vilnius-minimal-minimalism.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-8052738616247552724</id><published>2020-07-07T09:48:00.000+05:30</published><updated>2020-09-18T10:24:10.516+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Coding Problems"/><category scheme="http://www.blogger.com/atom/ns#" term="LeetCode"/><title type='text'> Plus One  LeetCode Solution</title><content type='html'>&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMDBDOMC6vOO3bBywW78JjEqBfPeuNMM5MU0n03NQAVRC8HUvmKewMQNU5yekEryWhm8PQyVmJiIg0pM4__0i383lT5CRMTyn-_nhd-i2zpzq6fBKQva9EgkteAdlMnmHu3TfiI7iKyyc/s357/leetcode.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;105&quot; data-original-width=&quot;357&quot; height=&quot;148&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMDBDOMC6vOO3bBywW78JjEqBfPeuNMM5MU0n03NQAVRC8HUvmKewMQNU5yekEryWhm8PQyVmJiIg0pM4__0i383lT5CRMTyn-_nhd-i2zpzq6fBKQva9EgkteAdlMnmHu3TfiI7iKyyc/w500-h148/leetcode.png&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;font color=&quot;#d52c1f&quot;&gt;Quoestion:&lt;/font&gt;&lt;a href=&quot;https://leetcode.com/explore/featured/card/july-leetcoding-challenge/544/week-1-july-1st-july-7th/3382/&quot; style=&quot;background-color: white;&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#0f9d58&quot;&gt;Click here&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img alt=&quot;&quot; height=&quot;393&quot; src=&quot;data:image/png;base64,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&quot; width=&quot;698&quot; /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#d52c1f&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;Python Code:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;pre style=&quot;text-align: left;&quot;&gt;class Solution(object):&lt;br /&gt;&amp;nbsp; &amp;nbsp; def plusOne(self, digits):&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i in range(len(digits)-1,-1,-1):&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if digits[i]==9:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; digits[i]=0&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; digits[i]=digits[i]+ 1&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return digits&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; newarr=[0]*(len(digits)+1)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; newarr[0]=1&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return newarr&lt;/pre&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#d52c1f&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#d52c1f&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#d52c1f&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#d52c1f&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#d52c1f&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#d52c1f&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#d52c1f&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/8052738616247552724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/8052738616247552724' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/8052738616247552724'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/8052738616247552724'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/07/plus-one-leetcode-solution.html' title=' Plus One  LeetCode Solution'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMDBDOMC6vOO3bBywW78JjEqBfPeuNMM5MU0n03NQAVRC8HUvmKewMQNU5yekEryWhm8PQyVmJiIg0pM4__0i383lT5CRMTyn-_nhd-i2zpzq6fBKQva9EgkteAdlMnmHu3TfiI7iKyyc/s72-w500-h148-c/leetcode.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-3048567972593097618</id><published>2020-07-05T21:26:00.003+05:30</published><updated>2020-09-18T09:48:32.629+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Coding Problems"/><category scheme="http://www.blogger.com/atom/ns#" term="LeetCode"/><title type='text'>Hamming Distance LeetCode  Solution Brian Kernighan&#39;s Algorithm</title><content type='html'>&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;font color=&quot;#d52c1f&quot;&gt;Quoestion:&lt;/font&gt;&lt;a href=&quot;https://leetcode.com/explore/featured/card/july-leetcoding-challenge/544/week-1-july-1st-july-7th/3381/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#0f9d58&quot;&gt;Click Here&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#d52c1f&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;Approach:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#d52c1f&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;we know that XOR operation return 1 when both bits are different,So we use it in finding hamming distance.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;font color=&quot;#d52c1f&quot;&gt;Example:&lt;/font&gt; x = 1,y = 4 if we perform XOR operation on this we get&amp;nbsp;&lt;/font&gt;&lt;font color=&quot;#3367d6&quot; style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;0 1 0 1&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;font&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Output:No of 1&#39;s in XOR result&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;So if we count No of 1&#39;s in XOR result then it will be the&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;Hamming distance.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;There are many methods to count no of 1&#39;s in a binary number out of these most optimized method is&amp;nbsp;&lt;/span&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;Brian Kernighan&#39;s Algorithm&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIFRFP18ljmWJ9D-xy02NjMjlAJ6bQjl4jjt1EsUpvsoUGdSk4c_EIxevQTJnIg633sHc5kIZZRv1vqBhypvKFyanTdRNS90seQZb870sD6H1wKWVaX3iPX8hxCahF8VImTgB0vSe-t0w/s1650/Blue+Confetti+Overlay+Thank+You+Postcard+Front.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1260&quot; data-original-width=&quot;1650&quot; height=&quot;381&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIFRFP18ljmWJ9D-xy02NjMjlAJ6bQjl4jjt1EsUpvsoUGdSk4c_EIxevQTJnIg633sHc5kIZZRv1vqBhypvKFyanTdRNS90seQZb870sD6H1wKWVaX3iPX8hxCahF8VImTgB0vSe-t0w/w500-h381/Blue+Confetti+Overlay+Thank+You+Postcard+Front.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#d52c1f&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;Brian Kernighan&#39;s Algorithm:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;Step1:Intialize integer variable,distance&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;Step2:while number !=0&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;---Turn-off the rightmost 1 bit by performing below &lt;/span&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;operation&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;--&lt;/span&gt;num = num&amp;amp;(num-1)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; ---increment distance&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;span&gt;&lt;span&gt;Step3:return distance&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;font color=&quot;#d52c1f&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;span&gt;&lt;font color=&quot;#d52c1f&quot;&gt;Optimization:&lt;/font&gt;Rather than performing iterations for all the bits,we reduced it to only the small number of bits.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;span&gt;&lt;span&gt;Time Complexity:O(1)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;span&gt;&lt;span&gt;Space Complexity:O(1)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;font color=&quot;#d52c1f&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#d52c1f&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;Python Code:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#d52c1f&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;#Brian Kernighan&#39;s Algorithm&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;div&gt;class Solution:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; def hammingDistance(self, x: int, y: int) -&amp;gt; int:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; num = x^y&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if num==0:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dist = 0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while True:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; num = num &amp;amp; (num-1)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dist+=1&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if num==0:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dist&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#d52c1f&quot;&gt;Python One Liner:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;class Solution:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; def hammingDistance(self, x: int, y: int) -&amp;gt; int:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return bin(x^y).count(&#39;1&#39;)&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#d52c1f&quot;&gt;Python Naive Approach:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;class Solution(object):&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; def hammingDistance(self, x, y):&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; x = [i for i in str(bin(x))]&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; x = x[2:]&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; y = [i for i in str(bin(y))]&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; y = y[2:]&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; diff = abs(len(x)-len(y))&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if len(x) &amp;gt; len(y):&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i in range(diff):&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; y.insert(i,&#39;0&#39;)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i in range(diff):&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; x.insert(i,&#39;0&#39;)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; count = 0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i in range(len(x)):&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if x[i]==y[i]:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; continue&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; count+=1&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return count&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#0f9d58&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://leetcode.com/explore/featured/card/july-leetcoding-challenge/544/week-1-july-1st-july-7th/3381/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#0f9d58&quot;&gt;Try Problem in LeetCode&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;font color=&quot;#ffffff&quot; style=&quot;background-color: #0f9d58;&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;font color=&quot;#ffffff&quot; style=&quot;background-color: #0f9d58;&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;font color=&quot;#ffffff&quot; style=&quot;background-color: #0f9d58;&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/3048567972593097618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/3048567972593097618' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/3048567972593097618'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/3048567972593097618'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/07/hamming-distance-leetcode-solution.html' title='Hamming Distance LeetCode  Solution Brian Kernighan&#39;s Algorithm'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIFRFP18ljmWJ9D-xy02NjMjlAJ6bQjl4jjt1EsUpvsoUGdSk4c_EIxevQTJnIg633sHc5kIZZRv1vqBhypvKFyanTdRNS90seQZb870sD6H1wKWVaX3iPX8hxCahF8VImTgB0vSe-t0w/s72-w500-h381-c/Blue+Confetti+Overlay+Thank+You+Postcard+Front.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-452780940764869414</id><published>2020-07-04T19:31:00.013+05:30</published><updated>2020-07-04T19:43:22.512+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Coding Problems"/><category scheme="http://www.blogger.com/atom/ns#" term="LeetCode"/><title type='text'> Ugly Number II LeetCode  Solution</title><content type='html'>&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMDBDOMC6vOO3bBywW78JjEqBfPeuNMM5MU0n03NQAVRC8HUvmKewMQNU5yekEryWhm8PQyVmJiIg0pM4__0i383lT5CRMTyn-_nhd-i2zpzq6fBKQva9EgkteAdlMnmHu3TfiI7iKyyc/s357/leetcode.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;105&quot; data-original-width=&quot;357&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMDBDOMC6vOO3bBywW78JjEqBfPeuNMM5MU0n03NQAVRC8HUvmKewMQNU5yekEryWhm8PQyVmJiIg0pM4__0i383lT5CRMTyn-_nhd-i2zpzq6fBKQva9EgkteAdlMnmHu3TfiI7iKyyc/s320/leetcode.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;font color=&quot;#d52c1f&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;font color=&quot;#d52c1f&quot;&gt;Quoestion: &lt;/font&gt;&lt;a href=&quot;https://leetcode.com/explore/challenge/card/july-leetcoding-challenge/544/week-1-july-1st-july-7th/3380/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#0f9d58&quot;&gt;Click Here&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;If we pick a naive approach we will end up getting time exceeded error.So,we will solve this problem more efficiently Using &lt;font color=&quot;#d52c1f&quot;&gt;Dynamic Programming&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9rypMoFzoLk39aAwHQfzH3QCT9BiKV0GzQXCCV_jIFfDG_hgBHg_b2TT1dd21igJ4gi_X4qgmmUhRZDDlQ1-aTCjglDhbKhALzLByBAGnosd6xiau54r1la4Xm50q-mehr3X56EBbonA/s1280/DYNAMIC.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;720&quot; data-original-width=&quot;1280&quot; height=&quot;439&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9rypMoFzoLk39aAwHQfzH3QCT9BiKV0GzQXCCV_jIFfDG_hgBHg_b2TT1dd21igJ4gi_X4qgmmUhRZDDlQ1-aTCjglDhbKhALzLByBAGnosd6xiau54r1la4Xm50q-mehr3X56EBbonA/w781-h439/DYNAMIC.png&quot; width=&quot;781&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#d52c1f&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;Algorithm:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;1.Intialize an array result of size n&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;2.Update result[0] = 1&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;3.Intialize pointers p2,p3 and p5 to 0 (pointer for value 2,3 and 5)&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;4.Loop from i:1 to N&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; =&amp;gt;find the minimum of three value (2*result[p2],3*result[p3] and &lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;5*result[p5])&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; =&amp;gt;put the value at the index i&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; =&amp;gt;if minimum = 2*result[p2], then increment p2.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; =&amp;gt;if minimum = 3*result[p3], then increment p3.&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; =&amp;gt;if minimum = 5*result[p5], then increment p5.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;5.return last value of result array.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#d52c1f&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;Python Code:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;div&gt;&lt;div&gt;class Solution(object):&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;def nthUglyNumber(self, n):&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; res = []&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; res.append(1)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; p2 = 0&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; p3 = 0&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; p5 = 0&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i in range(1,n+1):&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; minimum = min(res[p2]*2,res[p3]*3,res[p5]*5)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; res.append(minimum)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if minimum == res[p2]*2:p2+=1&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if minimum == res[p3]*3:p3+=1&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if minimum == res[p5]*5:p5+=1&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;return res[n-1]&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://leetcode.com/explore/challenge/card/july-leetcoding-challenge/544/week-1-july-1st-july-7th/3380/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#0f9d58&quot;&gt;Try Problem In LeetCode&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;&lt;/font&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/452780940764869414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/452780940764869414' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/452780940764869414'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/452780940764869414'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/07/ugly-number-ii-leetcode-solution.html' title=' Ugly Number II LeetCode  Solution'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMDBDOMC6vOO3bBywW78JjEqBfPeuNMM5MU0n03NQAVRC8HUvmKewMQNU5yekEryWhm8PQyVmJiIg0pM4__0i383lT5CRMTyn-_nhd-i2zpzq6fBKQva9EgkteAdlMnmHu3TfiI7iKyyc/s72-c/leetcode.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-8427010970660785109</id><published>2020-07-04T10:34:00.003+05:30</published><updated>2020-07-20T09:22:09.566+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Coding Problems"/><category scheme="http://www.blogger.com/atom/ns#" term="LeetCode"/><title type='text'>  Prison Cells After N Days LeetCode Solution</title><content type='html'>&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXQmnoH0RBGIsu_s34CVYxkcpMmcX1D4oARExF20nBSCj_4Qb80zZ7AuqxO-QrGwCOmWs9OjK2qb4BHEOAnG6Q2ZHy-HADF3BBc4gu83NGk4sRvuVHlpfFK30vfxn0GiioegTYkOEovMM/s910/lithuania-vilnius-minimal-minimalism.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;607&quot; data-original-width=&quot;910&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXQmnoH0RBGIsu_s34CVYxkcpMmcX1D4oARExF20nBSCj_4Qb80zZ7AuqxO-QrGwCOmWs9OjK2qb4BHEOAnG6Q2ZHy-HADF3BBc4gu83NGk4sRvuVHlpfFK30vfxn0GiioegTYkOEovMM/d/lithuania-vilnius-minimal-minimalism.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;font color=&quot;#d52c1f&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;font color=&quot;#d52c1f&quot;&gt;Quoestion:&lt;/font&gt; &lt;a href=&quot;https://leetcode.com/problems/prison-cells-after-n-days/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#0f9d58&quot;&gt;Click Here&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;div&gt;Input: cells = [0,1,0,1,1,0,0,1], N = 7&lt;/div&gt;&lt;div&gt;Output: [0,0,1,1,0,0,0,0]&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Given 1&amp;lt;= N &amp;lt;= 10^9&lt;/div&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#f4a900&quot; face=&quot;helvetica&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#f4a900&quot; face=&quot;helvetica&quot; size=&quot;5&quot;&gt;&lt;b&gt;Approach:&lt;/b&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;If we repeat the process for atmost 10^9 times we get time limit exceeded error.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;so,we need to optimize&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIv_iLvVZw7iT4dwESbyA3IV3sBviHg2Si_zgp7aEDDpdjnQ0isJaqQGmjXaSOhJxDjLWWMxeIDbfCRnuJ58XbmlCmb2-7M1i7Z94IvdkauZws381z2MMpYExhOphGLfcQ4z2ga14yZQ8/s758/PSX_20200704_095621.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;535&quot; data-original-width=&quot;758&quot; height=&quot;443&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIv_iLvVZw7iT4dwESbyA3IV3sBviHg2Si_zgp7aEDDpdjnQ0isJaqQGmjXaSOhJxDjLWWMxeIDbfCRnuJ58XbmlCmb2-7M1i7Z94IvdkauZws381z2MMpYExhOphGLfcQ4z2ga14yZQ8/w625-h443/PSX_20200704_095621.jpg&quot; width=&quot;625&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;If we Look at the above picture It is known that it&#39;s repeating after every 14 days and it is making a cycle.So we change N by N = N%14.So that no of iterations can be decreased and code runs faster.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#f4a900&quot; face=&quot;helvetica&quot; size=&quot;5&quot;&gt;&lt;b&gt;Algorithm:&lt;/b&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;=&amp;gt;U&lt;/font&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;pdate N to N % 14,if N==0 then update N = 14.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;=&amp;gt;Loop from 1 to N&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; =&amp;gt;Intialize a temp array of size 8&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; =&amp;gt;Loop from 1 to 6&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt;if cells[i-1]== cells[i+1]:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt;add 1 to temp&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt;else:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt;add 0 to temp&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; =&amp;gt;add 0 to temp at end&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; =&amp;gt; update cell = temp&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;=&amp;gt;return cell&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;font color=&quot;#f4a900&quot; face=&quot;helvetica&quot;&gt;&lt;b&gt;Python Code:&lt;/b&gt;&amp;nbsp;&lt;/font&gt;&lt;font face=&quot;arial&quot;&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre style=&quot;text-align: left;&quot;&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;class Solution(object):&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; def prisonAfterNDays(self, cells, N):&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; N = N % 14&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if N==0:&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; N = 14&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while N:&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lst = []&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lst.append(0)&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i in range(1,len(cells)-1):&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if cells[i-1]== cells[i+1]:&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lst.append(1)&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else:&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lst.append(0)&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lst.append(0)&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cells = lst&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; N-=1&lt;br /&gt;&lt;/font&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return cells&lt;/font&gt;&lt;span style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#0f9d58&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;a href=&quot;https://leetcode.com/explore/challenge/card/july-leetcoding-challenge/544/week-1-july-1st-july-7th/3379/&quot; target=&quot;_blank&quot;&gt;Try Problem in LeetCode&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/8427010970660785109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/8427010970660785109' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/8427010970660785109'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/8427010970660785109'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/07/prison-cells-after-n-days-leetcode.html' title='  Prison Cells After N Days LeetCode Solution'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXQmnoH0RBGIsu_s34CVYxkcpMmcX1D4oARExF20nBSCj_4Qb80zZ7AuqxO-QrGwCOmWs9OjK2qb4BHEOAnG6Q2ZHy-HADF3BBc4gu83NGk4sRvuVHlpfFK30vfxn0GiioegTYkOEovMM/s72-c-d/lithuania-vilnius-minimal-minimalism.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-18255458952471702</id><published>2020-07-03T08:38:00.003+05:30</published><updated>2020-09-18T10:14:36.366+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Coding Problems"/><category scheme="http://www.blogger.com/atom/ns#" term="LeetCode"/><title type='text'>Binary Tree Level Order Traversal II  Solution</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibS_wxNHDCE-UR3bsxdcDZ3j-rb3oLQ-Tp-iZIBAvZN-HcMvKDpqd57ifqjKdzdYXNNUHVsay7VjXWby_RiOGc1Ut20kLvLG1eE6_rTA5c1QIKqE_LXsNShPadEikZmBkEPPnYlF5dFDU/s1600/macbook-computer-laptop-technology.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;607&quot; data-original-width=&quot;910&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibS_wxNHDCE-UR3bsxdcDZ3j-rb3oLQ-Tp-iZIBAvZN-HcMvKDpqd57ifqjKdzdYXNNUHVsay7VjXWby_RiOGc1Ut20kLvLG1eE6_rTA5c1QIKqE_LXsNShPadEikZmBkEPPnYlF5dFDU/s1600/macbook-computer-laptop-technology.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;color: #ea9999; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;color: #ea9999; font-size: large;&quot;&gt;For example:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;Given binary tree&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp; 3&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;color: red; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp;/ \&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;color: red; font-size: large;&quot;&gt;&amp;nbsp; 9&amp;nbsp; 20&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;color: red; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; /&amp;nbsp; \&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;color: red; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp;15&amp;nbsp; &amp;nbsp;7&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;return its&amp;nbsp; level order traversal as:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;[[15,7],[9,20],[3] ]&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;color: orange; font-size: large;&quot;&gt;Approach:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;1.Add root to queue&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;2.pop item in queue and add left and right nodes of that item to queue.now add value of popped to a temporary array&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;3.repeat the above step len(queue) no of times&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;4.Add that temporary to result array&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;5.if size of queue !=0 go to step 2&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;6.return reversed result array&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: red; font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: red; font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Python Code:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;# Definition for a binary tree node.&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;# class TreeNode(object):&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp;def __init__(self, val=0, left=None, right=None):&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;self.val = val&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;self.left = left&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;self.right = right&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;class Solution(object):&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; def levelOrderBottom(self, root):&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if not root :&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return []&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; queue = []&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result = []&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; queue.append(root)&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while len(queue)&amp;gt;0:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; temp = []&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i in range(len(queue)):&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; node = queue.pop(0)&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; temp.append(node.val)&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if node.left!=None: queue.append(node.left)&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if node.right!=None: queue.append(node.right)&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result.insert(0,temp)&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return result&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;color: lime; font-size: large;&quot;&gt;&lt;a href=&quot;https://leetcode.com/explore/challenge/card/july-leetcoding-challenge/544/week-1-july-1st-july-7th/3378&quot; target=&quot;_blank&quot;&gt;Try Quoeston Here&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/18255458952471702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/18255458952471702' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/18255458952471702'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/18255458952471702'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/07/binary-tree-level-order-traversal-ii.html' title='Binary Tree Level Order Traversal II  Solution'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibS_wxNHDCE-UR3bsxdcDZ3j-rb3oLQ-Tp-iZIBAvZN-HcMvKDpqd57ifqjKdzdYXNNUHVsay7VjXWby_RiOGc1Ut20kLvLG1eE6_rTA5c1QIKqE_LXsNShPadEikZmBkEPPnYlF5dFDU/s72-c/macbook-computer-laptop-technology.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-1773801378675778881</id><published>2020-07-02T09:16:00.003+05:30</published><updated>2020-09-18T10:23:17.635+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="LeetCode"/><title type='text'>Arranging Coins LeetCode Solution</title><content type='html'>&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;font color=&quot;#f4a900&quot;&gt;&lt;b&gt;Quoestion: &lt;a href=&quot;https://leetcode.com/explore/featured/card/july-leetcoding-challenge/544/week-1-july-1st-july-7th/3377&quot; target=&quot;_blank&quot;&gt;Click Here&lt;/a&gt;&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhWMBS9BFs0xYTwWlFOdTVY73njIMQXOFqdEHgVKdwsK5qqJzJuOV9dYVepJWDd2Zp0Nexr2uMRl0-_VZF_x3gTN9o_8MilW_fZhYGRv8jYaTAHpNKehj4_hUah2Y4dIN_N23ICSKs0YM/s357/leetcode.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;105&quot; data-original-width=&quot;357&quot; height=&quot;118&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhWMBS9BFs0xYTwWlFOdTVY73njIMQXOFqdEHgVKdwsK5qqJzJuOV9dYVepJWDd2Zp0Nexr2uMRl0-_VZF_x3gTN9o_8MilW_fZhYGRv8jYaTAHpNKehj4_hUah2Y4dIN_N23ICSKs0YM/w400-h118/leetcode.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzysdsUhNIeC0vGZqV5XZd72FSHZKX99uiuZUWCU1HL0HjcxOg-0LtUaBA_N9naQw_3PQRGFMFlEgFiZdznPOq6dc4UNOoWyIBPuWW5-_pzTbtlgdV5kR-ky7dsKEDIHsbLH8-fs_6QoI/s910/laptop.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;607&quot; data-original-width=&quot;910&quot; height=&quot;428&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzysdsUhNIeC0vGZqV5XZd72FSHZKX99uiuZUWCU1HL0HjcxOg-0LtUaBA_N9naQw_3PQRGFMFlEgFiZdznPOq6dc4UNOoWyIBPuWW5-_pzTbtlgdV5kR-ky7dsKEDIHsbLH8-fs_6QoI/w640-h428/laptop.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#f4a900&quot; face=&quot;georgia&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#f4a900&quot; face=&quot;helvetica&quot; size=&quot;5&quot;&gt;&lt;b&gt;Approach:&lt;/b&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;If we take a close look at problem we&amp;nbsp; need to find the greatest m,such that m(m+1)/2 &amp;lt;= n or m^2 + m - 2n &amp;lt;= 0. This is quadriatic inequality,to solve we should find roots of m^2 + m - 2n = 0.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;sub style=&quot;font-weight: bold;&quot;&gt;&lt;font size=&quot;5&quot;&gt;m&lt;/font&gt;1,2=&lt;/sub&gt;&lt;b&gt;⟨-1±&lt;/b&gt;√&lt;b&gt;1+8n⟩/2 or m &amp;gt;=&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;b style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&amp;nbsp;(2n +0.25)½ - 0.5&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b style=&quot;font-family: arial; font-size: x-large;&quot;&gt;&lt;font color=&quot;#d52c1f&quot;&gt;Complexity:&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b style=&quot;font-family: arial; font-size: x-large;&quot;&gt;Time:O(1)&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b style=&quot;font-family: arial; font-size: x-large;&quot;&gt;Space:O(1)&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#f4a900&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;b&gt;Pyhton Code:&lt;/b&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;Class Solution:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; def arrangeCoins(self,n):&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;return int(sqrt(2*n + 0.25) - 0.5)&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#f4a900&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#d52c1f&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;b&gt;Second Approach:&lt;/b&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span&gt;&amp;nbsp;we add arrange i coins in kth row and decrease n by k&amp;nbsp; (n=n-i) until i &amp;gt;= n and finally we return i&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#d52c1f&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;span&gt;&lt;b&gt;Python Code:&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;def arrangeCoins(self, n):&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if n==0:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return n&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; i =0&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while i&amp;lt;n:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; n-=(i+1)&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; i+=1&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;arial&quot; size=&quot;5&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return i&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#0f9d58&quot; face=&quot;arial&quot; size=&quot;5&quot;&gt;&lt;a href=&quot;https://leetcode.com/explore/featured/card/july-leetcoding-challenge/544/week-1-july-1st-july-7th/3377&quot; target=&quot;_blank&quot;&gt;Try Problem here&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/1773801378675778881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/1773801378675778881' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/1773801378675778881'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/1773801378675778881'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/07/arranging-coins-leetcode-solution.html' title='Arranging Coins LeetCode Solution'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhWMBS9BFs0xYTwWlFOdTVY73njIMQXOFqdEHgVKdwsK5qqJzJuOV9dYVepJWDd2Zp0Nexr2uMRl0-_VZF_x3gTN9o_8MilW_fZhYGRv8jYaTAHpNKehj4_hUah2Y4dIN_N23ICSKs0YM/s72-w400-h118-c/leetcode.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-3521337765136807543</id><published>2020-06-27T18:53:00.011+05:30</published><updated>2020-09-18T10:43:48.364+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data Science"/><category scheme="http://www.blogger.com/atom/ns#" term="Data Structures"/><title type='text'>Best YouTube Channels To Learn Data Science and Machine Learning For Free</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;There are Several Online Platforms to learn Data Science.But for those who are looking to learn Data Science for free &lt;a href=&quot;https://www.youtube.com/&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;YouTube&amp;nbsp;&lt;/span&gt;&lt;/a&gt;is the best platform.I strongly recommend to follow these channels if you are heading towards Data Science.&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0uLm-2Zrw3Ewag2KMLnUmyNHxbPBfSUUbKbz8_HOFhfq5n0e_GablbvgwvPXVCUjakyLcYB3bC0Lmt0Z44yVdP-5Wc-hYDpH6PMeDZQcUNtmfMamI2zp8Y3U2yGZw0wh5GPqKB8iN_Ls/s1600/800px-Logo_of_YouTube_%25282015-2017%2529.svg.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;336&quot; data-original-width=&quot;800&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0uLm-2Zrw3Ewag2KMLnUmyNHxbPBfSUUbKbz8_HOFhfq5n0e_GablbvgwvPXVCUjakyLcYB3bC0Lmt0Z44yVdP-5Wc-hYDpH6PMeDZQcUNtmfMamI2zp8Y3U2yGZw0wh5GPqKB8iN_Ls/s1600/800px-Logo_of_YouTube_%25282015-2017%2529.svg.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;The Channels that I mentioned here also contains mathematics channels because it is also a part of Data science.&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;(&quot;Below Red Coloured words are Links to channels&quot;)&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;1.&amp;nbsp;&lt;span style=&quot;color: red;&quot;&gt;CodeBasics&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;This Channel has all playlists that are required for data science.He also included some real world data science projects.&lt;/span&gt;&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;The way he teaches is very interactive. Even if you are noob at programming he has python playlist from scratch.&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;2.&amp;nbsp;&lt;a href=&quot;https://www.youtube.com/user/dataschool&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;DataSchool&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;If you&amp;nbsp; want to understand functionality behind the library functions,what they will do and how do they work then this channel is a very good choice.&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;3. &lt;a href=&quot;https://www.youtube.com/dataprofessor?sub_confirmation=1&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;Data Professor&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;If you are completely from a non technical background then this channel is for you.&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;4. &lt;a href=&quot;https://www.youtube.com/c/kenjee1?sub_confirmation=1&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;Ken Jee&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;This channel mainly focuses on real world data science projects&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;5. &lt;a href=&quot;https://www.youtube.com/user/sentdex&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;Sentdex&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;Best channel to learn Data Science in depth.It includes almost all stuff that you can do with python&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: purple;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #444444;&quot;&gt;6.&lt;/span&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;https://www.youtube.com/channel/UCCezIgC97PvUuR4_gbFUs5g&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;Cory Schafer&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;Best for learning Python Libraries&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;7.&lt;a href=&quot;https://www.youtube.com/channel/UCY8mzqqGwl5_bTpBY9qLMAA&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;Andreas Kretz&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;Building up big data platforms. Figuring out how to ingest, process and store data. Enabling Data Scientists to do awesome stuff for customers .That&#39;s what data engineering, the plumbing of data science is all about. This channel&amp;nbsp; help you get into this awesome job.&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;8.&lt;a href=&quot;https://www.youtube.com/channel/UCtYLUTtgS3k1Fg4y5tAhLbw&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;StatQuest with Josh Starmer&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;StatQuest breaks down complicated Statistics and Machine Learning methods into small, bite-sized pieces that are easy to understand.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;9.&lt;/span&gt;&lt;a href=&quot;https://www.youtube.com/channel/UCNU_lfiiWBdtULKOw6X0Dig&quot; target=&quot;_blank&quot;&gt;&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;color: red; font-size: large;&quot;&gt;Krish Naik&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;He is&amp;nbsp; self motivated to learn data science.He explains the concepts very clearly so that a beginner can easily understand.&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: purple;&quot;&gt;10.&lt;a href=&quot;https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw&quot; style=&quot;color: red;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;3Blue1Brown&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;All tutorials are made in animated format so that we can understand even much better .This channel contain mathematics vedeos that make math at your finger tips,you will definitely love math if you watch these vedoes and also it is best channel to learn Neural networks,Deep Learning.&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: purple;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;.11&lt;/span&gt;&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;. &lt;/span&gt;&lt;a href=&quot;https://www.youtube.com/user/consumerchampion&quot; target=&quot;_blank&quot;&gt;&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;color: red; font-size: large;&quot;&gt;Python Programmer&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;12.&lt;span style=&quot;color: red;&quot;&gt; &lt;a href=&quot;https://www.youtube.com/user/lexfridman&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;Lex Fridman&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;13.&lt;a href=&quot;https://www.youtube.com/channel/UCBPRJjIWfyNG4X-CRbnv78A&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;Abhishek_Thakur&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;14.&amp;nbsp;&lt;a href=&quot;https://www.youtube.com/channel/UCKPyg5gsnt6h0aA8EBw3i6A&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;RichardOnData&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;15.&lt;a href=&quot;https://www.youtube.com/user/DataScienceDojo&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;Data Science Dojo&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;color: #ffd966; font-size: large;&quot;&gt;Do Share Some of your best Channels that you found.&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;&amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/3521337765136807543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/3521337765136807543' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/3521337765136807543'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/3521337765136807543'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/06/best-youtube-channels-to-learn-data.html' title='Best YouTube Channels To Learn Data Science and Machine Learning For Free'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0uLm-2Zrw3Ewag2KMLnUmyNHxbPBfSUUbKbz8_HOFhfq5n0e_GablbvgwvPXVCUjakyLcYB3bC0Lmt0Z44yVdP-5Wc-hYDpH6PMeDZQcUNtmfMamI2zp8Y3U2yGZw0wh5GPqKB8iN_Ls/s72-c/800px-Logo_of_YouTube_%25282015-2017%2529.svg.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-1292193450294285479</id><published>2020-06-24T22:51:00.000+05:30</published><updated>2020-06-24T22:56:54.722+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data Science"/><title type='text'>How to concatenate multiple CSV files in one single CSV with Python</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;a href=&quot;about:invalid#zClosurez&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;data:image/png;base64,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&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;We will Come across this case when we have to analyze data from different csv files.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;The task is to read and concatenate all csv files in same directory.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;First we should import numpy,pandas,os libraries&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;The Following code will list the all the csv file iin the directory&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;b&gt;import pandas as pd&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;b&gt;import numpy as np&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;b&gt;import os&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;b&gt;files = [file for file in os.listdir(r&#39;C:\Users\sarad\1DataScience\Pandas-Data-Science-Tasks-master\SalesAnalysis\Sales_Data&#39;)]&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;b&gt;for i in files:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; print(i)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;with the following code we get final concatenated dataframe&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;b&gt;for file in files:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;b style=&quot;color: #3d85c6;&quot;&gt;&amp;nbsp; &amp;nbsp; df = pd.read_csv(&#39;./Pandas-Data-Science-Tasks-master/SalesAnalysis/Sales_Data/&#39;+file) &lt;/b&gt;&lt;span style=&quot;color: red;&quot;&gt;#adding file name at the end of the path&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;b style=&quot;color: #3d85c6;&quot;&gt;&amp;nbsp; &amp;nbsp; result_df = pd.concat([result_df,df]) &lt;/b&gt;&lt;span style=&quot;color: red;&quot;&gt;#concatenating previous and current data Frame&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;b&gt;result_df.head()&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;color: #ffd966; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;b&gt;Final Output:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;data:image/png;base64,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sfSFL5UtoQAKoAAKoAAKoAAKoAAKoAAKoAAKoMArFOBi6RUqMwMFUAAFUAAFUAAFUAAFUAAFUAAFUAAFvlABLpa+8KWyJRRAARRAARRAARRAARRAARRAARRAARR4hQJcLL1CZWagAAqgAAqgAAqgAAqgAAqgAAqgAAqgwBcqwMXSF75UtoQCKIACKIACKIACKIACKIACKIACKIACr1CAi6VXqMwMFEABFEABFEABFEABFEABFEABFEABFPhCBbhY+sKXypZQAAVQAAVQAAVQAAVQAAVQAAVQAAVQ4BUKcLH0CpWZgQIogAIogAIogAIogAIogAIogAIogAJfqAAXS1/4UtkSCqAACqAACqAACqAACqAACqAACqAACrxCAS6WXqEyM1AABVAABVAABVAABVAABVAABVAABVDgCxXgYukLXypbQgEUQAEUQAEUQAEUQAEUQAEUQAEUQIFXKMDF0itUZgYKoAAKoAAKoAAKoAAKoAAKoAAKoAAKfKECXCx94UtlSyiAAiiAAiiAAiiAAiiAAiiAAiiAAijwCgW4WHqFysxAARRAARRAARRAARRAARRAARRAARRAgS9UgIulL3ypbAkFUAAFUAAFUAAFUAAFUAAFUAAFUAAFXqEAF0uvUJkZKIACKIACKIACKIACKIACKIACKIACKPCFCnCx9IUv9aot/f//v//P3/nnTO/cK2IeFEABFEABFEABFEABFEABFEABFECB5yrAxdJz392pleuSZ9RkhTOqH+Xu7D2aSw4FUAAFUAAFUAAFUAAFUAAFUAAFUOA6BbhYuk7LWzvpIkb27LCVPiscX4f4YWePuDMeeRRAARRAARRAARRAARRAARRAARRAgc9VgIulz303/1lZvoTJ8X+IG85KjxWORgY3ntWaVZ76Y1EABVAABVAABVAABVAABVAABVAABT5PAS6WPu+d/NeKdGnjiXwxk2NxM664s6oLK45jlR88PTs1Xqd6t+o143kNPgqgAAqgAAqgAAqgAAqgAAqgAAqgwOsU4GLpdVofmqTLlVyc8RyLv4urLmxX65zsr9as8MQJy4MCKIACKIACKIACKIACKIACKIACKPB5CnCx9Hnv5B8r0uXKP8Di0meVpz4dX/mwKxzn79Ss9BYnLA8KoAAKoAAKoAAKoAAKoAAKoAAKoMDnKcDF0ue9k3+sSJcr/wCLS59V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&quot; /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;script src=&quot;https://gist.github.com/VAMSINADH2000/44643dfa12fbb959d68b3145bec94267.js&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/1292193450294285479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/1292193450294285479' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/1292193450294285479'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/1292193450294285479'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/06/how-to-concatenate-multiple-csv-files.html' title='How to concatenate multiple CSV files in one single CSV with Python'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-8098273034893901240</id><published>2020-06-24T20:00:00.004+05:30</published><updated>2020-09-18T10:52:44.767+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Coding Problems"/><category scheme="http://www.blogger.com/atom/ns#" term="Data Structures"/><category scheme="http://www.blogger.com/atom/ns#" term="LeetCode"/><title type='text'>Unique Binary Search Trees LeetCode  Solution</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3&amp;nbsp; &amp;nbsp; &amp;nbsp;3&amp;nbsp; &amp;nbsp; &amp;nbsp; 2&amp;nbsp; &amp;nbsp; &amp;nbsp; 1&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; \&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/&amp;nbsp; &amp;nbsp; &amp;nbsp;/&amp;nbsp; &amp;nbsp; &amp;nbsp; / \&amp;nbsp; &amp;nbsp; &amp;nbsp; \&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;3&amp;nbsp; &amp;nbsp; &amp;nbsp;2&amp;nbsp; &amp;nbsp; &amp;nbsp;1&amp;nbsp; &amp;nbsp; &amp;nbsp; 1&amp;nbsp; &amp;nbsp;3&amp;nbsp; &amp;nbsp; &amp;nbsp; 2&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; /&amp;nbsp; &amp;nbsp; &amp;nbsp;/&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp;2&amp;nbsp; &amp;nbsp; &amp;nbsp;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #ffd966; font-size: large;&quot;&gt;Approach:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;Let us consider result[i] be the number of unique binary search trees for i. The number of trees are determined by the number of subtrees which have different root node. For example,&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;i=0, result[0]=1 //empty tree&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;i=1, result[1]=1 //one tree&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;i=2, result[2]=result[0]*result[1] // 0 is root&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + result[1]*result[0] // 1 is root&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;i=3, result[3]=result[0]*result[2] // 1 is root&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + result[1]*result[1] // 2 is root&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + result[2]*result[0] // 3 is root&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;i=4, result[4]=result[0]*result[3] // 1 is root&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + result[1]*result[2] // 2 is root&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + result[2]*result[1] // 3 is root&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + result[3]*result[0] // 4 is root&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;..&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;..&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;..&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #e06666; font-size: large;&quot;&gt;i=n, result[n] = sum(result[0..k]*result[k+1...n]) 0 &amp;lt;= k &amp;lt; n-1&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #ffd966; font-size: large;&quot;&gt;Python Code:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;class Solution(object):&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; def numTrees(self, n):&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result = [0]*(n+1)&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result[0],result[1] = 1,1&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i in range(2,n+1):&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for j in range(0,i):&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result[i] = result[i]+result[j]*result[i - j - 1]&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return result[n]&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #ffd966; font-size: large;&quot;&gt;Java Code:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;class Solution {&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; public int numTrees(int n) {&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;int[] result = new int[n + 1];&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;result[0] = 1;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;result[1] = 1;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;for (int i = 2; i &amp;lt;= n; i++) {&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;for (int j = 0; j &amp;lt;= i - 1; j++) {&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;result[i] = result[i] + result[j] * result[i - j - 1];&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;return result[n];&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #3d85c6; font-size: large;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/8098273034893901240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/8098273034893901240' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/8098273034893901240'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/8098273034893901240'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/06/unique-binary-search-trees-leetcode.html' title='Unique Binary Search Trees LeetCode  Solution'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-6108198320973574945</id><published>2020-06-23T18:03:00.001+05:30</published><updated>2020-06-23T18:11:44.511+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Coding Problems"/><category scheme="http://www.blogger.com/atom/ns#" term="Data Structures"/><category scheme="http://www.blogger.com/atom/ns#" term="LeetCode"/><title type='text'>Count Complete Tree Nodes  Solution LeetCode</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;color: #ffd966; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;Quoestion:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Given a&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; box-sizing: border-box; font-weight: bolder;&quot;&gt;complete&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp;binary tree, count the number of nodes&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMDBDOMC6vOO3bBywW78JjEqBfPeuNMM5MU0n03NQAVRC8HUvmKewMQNU5yekEryWhm8PQyVmJiIg0pM4__0i383lT5CRMTyn-_nhd-i2zpzq6fBKQva9EgkteAdlMnmHu3TfiI7iKyyc/s1600/leetcode.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;105&quot; data-original-width=&quot;357&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMDBDOMC6vOO3bBywW78JjEqBfPeuNMM5MU0n03NQAVRC8HUvmKewMQNU5yekEryWhm8PQyVmJiIg0pM4__0i383lT5CRMTyn-_nhd-i2zpzq6fBKQva9EgkteAdlMnmHu3TfiI7iKyyc/s1600/leetcode.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYFlFJj25c_b5dG3492B1KnaqjM_NdT62V_rCstZ78qDhqLjHstIWbflwO5p8HSdHDPUZNIQenuvHJpIBVrAcKat7q-8wxFgMPbjgjS2gmfvy940XrvA8hdztA6swsOnYCjfN3dWhabhw/s1600/searching+treenode.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;1600&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYFlFJj25c_b5dG3492B1KnaqjM_NdT62V_rCstZ78qDhqLjHstIWbflwO5p8HSdHDPUZNIQenuvHJpIBVrAcKat7q-8wxFgMPbjgjS2gmfvy940XrvA8hdztA6swsOnYCjfN3dWhabhw/s1600/searching+treenode.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Example1:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;input:[1,2,3,4,5,6]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;output:6&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Example2:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;input:[]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;output:0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #ffd966; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Algorithm:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Traverse through BST after visiting each node increase the count by 1 when we reach leaf node return count&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;You can follow any of the traversal algorithm.inorder is recomended&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffd966; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #ffd966; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Python:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6fa8dc; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;# Definition for a binary tree node.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;# class TreeNode:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp;def __init__(self, val=0, left=None, right=None):&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;self.val = val&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;self.left = left&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;self.right = right&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;class Solution:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; def __init__(self):&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.c = 0&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; def inorder(self,root):&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if not root:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return self.c&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if root.left:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.inorder(root.left)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.c+=1&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # self.result.append(root.val)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if root.right:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.inorder(root.right)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; def countNodes(self, root: TreeNode) -&amp;gt; int:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.inorder(root)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return self.c&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffd966; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;One Liner Python Code:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: arial, helvetica, sans-serif; font-size: large;&quot;&gt;# Definition for a binary tree node.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: arial, helvetica, sans-serif; font-size: large;&quot;&gt;# class TreeNode:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: arial, helvetica, sans-serif; font-size: large;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp;def __init__(self, val=0, left=None, right=None):&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: arial, helvetica, sans-serif; font-size: large;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;self.val = val&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: arial, helvetica, sans-serif; font-size: large;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;self.left = left&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: arial, helvetica, sans-serif; font-size: large;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;self.right = right&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: arial, helvetica, sans-serif; font-size: large;&quot;&gt;class Solution:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: arial, helvetica, sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; def countNodes(self, root: TreeNode) -&amp;gt; int:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: arial, helvetica, sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if not root:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: arial, helvetica, sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 0&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: purple; font-family: arial, helvetica, sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 1+self.countNodes(root.left)+self.countNodes(root.right)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6fa8dc; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6fa8dc; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6fa8dc; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #ffd966; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style=&quot;color: #ffd966; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffd966; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/6108198320973574945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/6108198320973574945' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/6108198320973574945'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/6108198320973574945'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/06/count-complete-tree-nodes-solution.html' title='Count Complete Tree Nodes  Solution LeetCode'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMDBDOMC6vOO3bBywW78JjEqBfPeuNMM5MU0n03NQAVRC8HUvmKewMQNU5yekEryWhm8PQyVmJiIg0pM4__0i383lT5CRMTyn-_nhd-i2zpzq6fBKQva9EgkteAdlMnmHu3TfiI7iKyyc/s72-c/leetcode.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-2881506767266916949</id><published>2020-06-22T17:06:00.001+05:30</published><updated>2020-06-22T17:20:57.340+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Coding Problems"/><category scheme="http://www.blogger.com/atom/ns#" term="LeetCode"/><title type='text'> Single Number II  Solution LeetCode June Day 22</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;Quoestion:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.65);&quot;&gt;Given a&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; box-sizing: border-box; color: rgba(0 , 0 , 0 , 0.65); font-weight: bolder;&quot;&gt;non-empty&lt;/span&gt;&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.65);&quot;&gt;&amp;nbsp;array of integers, every element appears&amp;nbsp;&lt;/span&gt;&lt;em style=&quot;background-color: white; box-sizing: border-box; color: rgba(0, 0, 0, 0.65);&quot;&gt;three&lt;/em&gt;&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.65);&quot;&gt;&amp;nbsp;times except for one, which appears exactly once. Find that single one.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.65);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.65);&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO87BECr_9mWuuPoIegLXO6AhfwD9uTBOts7Wp7iG-1BdYwGXGQaeoanouYOOlz25KAlhG8mtICpwGOUkQM-GN3bELVtigf9dMbgtT4U3yMnSSH9w9FxPoMhQOAvGFfZlHUzGzsxdiqkE/s1600/BeFunky-design+%25281%2529.jpg&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO87BECr_9mWuuPoIegLXO6AhfwD9uTBOts7Wp7iG-1BdYwGXGQaeoanouYOOlz25KAlhG8mtICpwGOUkQM-GN3bELVtigf9dMbgtT4U3yMnSSH9w9FxPoMhQOAvGFfZlHUzGzsxdiqkE/s1600/BeFunky-design+%25281%2529.jpg&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffd966; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #ffd966; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;Python Code:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;from collections import defaultdict&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;class Solution:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; def singleNumber(self, nums: List[int]) -&amp;gt; int:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; d = defaultdict(int)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i in nums:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; d[i]+=1&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i,j in d.items():&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if j==1:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return i&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/2881506767266916949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/2881506767266916949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/2881506767266916949'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/2881506767266916949'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/06/single-number-ii-solution-leetcode-june.html' title=' Single Number II  Solution LeetCode June Day 22'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO87BECr_9mWuuPoIegLXO6AhfwD9uTBOts7Wp7iG-1BdYwGXGQaeoanouYOOlz25KAlhG8mtICpwGOUkQM-GN3bELVtigf9dMbgtT4U3yMnSSH9w9FxPoMhQOAvGFfZlHUzGzsxdiqkE/s72-c/BeFunky-design+%25281%2529.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-4050412554869849537</id><published>2020-06-21T14:56:00.002+05:30</published><updated>2020-06-21T15:05:06.457+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Coding Problems"/><category scheme="http://www.blogger.com/atom/ns#" term="LeetCode"/><title type='text'>Dungeon Game  Solution Using DP LeetCode June Day 21 </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhs07VwbFA0WQfxoS3Gp9AmGD9vKZ5xjUywLs0i3ubUPNeaqJaUYmP0ZXETfS7ymk8Dv8cZFoYK0-exgTkRkiBpSGueHa6Z_wCAwkdBR-hBZo9KMMdVib6KYveCRhk7ntXC0088Msy1R4/s1600/download.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;105&quot; data-original-width=&quot;357&quot; height=&quot;188&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhs07VwbFA0WQfxoS3Gp9AmGD9vKZ5xjUywLs0i3ubUPNeaqJaUYmP0ZXETfS7ymk8Dv8cZFoYK0-exgTkRkiBpSGueHa6Z_wCAwkdBR-hBZo9KMMdVib6KYveCRhk7ntXC0088Msy1R4/s640/download.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;color: #ffd966;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;color: #ffd966;&quot;&gt;Quoestion:&lt;/span&gt;&amp;nbsp;&lt;a href=&quot;https://leetcode.com/explore/challenge/card/june-leetcoding-challenge/541/week-3-june-15th-june-21st/3367/&quot; target=&quot;_blank&quot;&gt;Click Here&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #ffd966; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;Approach:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white; color: #424242; font-family: , &amp;quot;blinkmacsystemfont&amp;quot; , &amp;quot;segoe ui&amp;quot; , &amp;quot;pingfang sc&amp;quot; , &amp;quot;hiragino sans gb&amp;quot; , &amp;quot;microsoft yahei&amp;quot; , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif , &amp;quot;apple color emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui symbol&amp;quot;;&quot;&gt;After observing the problem, we can find that there is one requirement.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; box-sizing: border-box; color: #424242; font-family: , &amp;quot;blinkmacsystemfont&amp;quot; , &amp;quot;segoe ui&amp;quot; , &amp;quot;pingfang sc&amp;quot; , &amp;quot;hiragino sans gb&amp;quot; , &amp;quot;microsoft yahei&amp;quot; , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif , &amp;quot;apple color emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui symbol&amp;quot;; font-weight: bolder;&quot;&gt;knight&#39;s health must &amp;gt;= 1&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #424242; font-family: , &amp;quot;blinkmacsystemfont&amp;quot; , &amp;quot;segoe ui&amp;quot; , &amp;quot;pingfang sc&amp;quot; , &amp;quot;hiragino sans gb&amp;quot; , &amp;quot;microsoft yahei&amp;quot; , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif , &amp;quot;apple color emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui symbol&amp;quot;;&quot;&gt;. since the goal is to find the minimum health. A intuitive thought is to traverse from destination, from each cell compute the minimum health required to enter such cell. then back propagate to top will get us muimum health required&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #ffd966; font-size: large;&quot;&gt;Python Code:(Using DP):&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #444444; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;class Solution:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #444444; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; def calculateMinimumHP(self, dungeon):&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #444444; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; R, C = len(dungeon), len(dungeon[0])&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #444444; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dp = [[0] * C for _ in range(R)]&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #444444; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dp[-1][-1] = max(1 - dungeon[-1][-1], 1)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #444444; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i in range(R - 2, -1, -1):&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #444444; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dp[i][C - 1] = max(dp[i + 1][C - 1] - dungeon[i][C - 1], 1)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #444444; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i in range(C - 2, -1, -1):&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #444444; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dp[R - 1][i] = max(dp[R - 1][i + 1] - dungeon[R - 1][i], 1)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #444444; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i in range(R - 2, -1, -1):&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #444444; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for j in range(C - 2, -1, -1):&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: cyan; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #444444;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #93c47d;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #93c47d; font-size: large;&quot;&gt;&amp;nbsp;# if adding health is much larger than health required, set it to 1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #444444; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dp[i][j] = max(min(dp[i + 1][j], dp[i][j + 1]) - dungeon[i][j], 1)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #444444; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;color: #741b47; font-size: large;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #444444; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dp[0][0]&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/4050412554869849537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/4050412554869849537' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/4050412554869849537'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/4050412554869849537'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/06/dungeon-game-solution-using-dp-leetcode.html' title='Dungeon Game  Solution Using DP LeetCode June Day 21 '/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhs07VwbFA0WQfxoS3Gp9AmGD9vKZ5xjUywLs0i3ubUPNeaqJaUYmP0ZXETfS7ymk8Dv8cZFoYK0-exgTkRkiBpSGueHa6Z_wCAwkdBR-hBZo9KMMdVib6KYveCRhk7ntXC0088Msy1R4/s72-c/download.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-961157751088646300</id><published>2020-06-19T19:06:00.005+05:30</published><updated>2020-09-18T11:04:32.318+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Coding Problems"/><category scheme="http://www.blogger.com/atom/ns#" term="LeetCode"/><title type='text'>Longest Duplicate Substring Python Solution LeetCode June Day 19</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMzyL5dtGNeVTDmpMJHGqYC-CQMVGtUaPUVl7uPzNJxwq7_beySGvu9umhukp0I_apkfSQYS4ZOmBfiFN0pRzlp1RbUWSyU4WAlSshGxtPRqaIdE5gIowjnJz8Nk-2OGgosa0PXVn34aQ/s1600/download.png&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;188&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMzyL5dtGNeVTDmpMJHGqYC-CQMVGtUaPUVl7uPzNJxwq7_beySGvu9umhukp0I_apkfSQYS4ZOmBfiFN0pRzlp1RbUWSyU4WAlSshGxtPRqaIdE5gIowjnJz8Nk-2OGgosa0PXVn34aQ/s640/download.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #ffd966;&quot;&gt;Quoestion: &lt;a href=&quot;https://leetcode.com/problems/longest-duplicate-substring/&quot; target=&quot;_blank&quot;&gt;ClickHere&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #ffd966; font-size: large;&quot;&gt;Python Code:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;from collections import defaultdict&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;prime = 10 ** 9 + 7&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;base = 26&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;class Solution(object):&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; def longestDupSubstring(self, S):&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;&quot;&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; :type S: str&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; :rtype: str&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;&quot;&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; def helper(s, n):&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_base = pow(base, n - 1, prime)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cur = 0&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i in s[:n]:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cur = (cur * base + ord(i)) % prime&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dic = defaultdict(list)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dic[cur].append(n - 1)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for j, i in enumerate(s[n:]):&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cur -= ord(s[j]) * max_base&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cur = (cur * base + ord(i)) % prime&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if cur in dic:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; st = s[j + 1:j + n + 1]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for v in dic[cur]:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if st == s[v - n + 1:v + 1]:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return st&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dic[cur].append(j + n)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return &quot;&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; low = 0&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; high = len(S)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; res = &quot;&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while low + 1 &amp;lt; high:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mid = (low + high) // 2&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; v = helper(S, mid)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if v:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; res = v&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; low = mid&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; high = mid&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #6aa84f; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return res&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/961157751088646300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/961157751088646300' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/961157751088646300'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/961157751088646300'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/06/from-collections-import-defaultdict.html' title='Longest Duplicate Substring Python Solution LeetCode June Day 19'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMzyL5dtGNeVTDmpMJHGqYC-CQMVGtUaPUVl7uPzNJxwq7_beySGvu9umhukp0I_apkfSQYS4ZOmBfiFN0pRzlp1RbUWSyU4WAlSshGxtPRqaIdE5gIowjnJz8Nk-2OGgosa0PXVn34aQ/s72-c/download.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-3426886120056785475</id><published>2020-06-15T16:25:00.003+05:30</published><updated>2020-09-18T11:06:46.031+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Coding Problems"/><category scheme="http://www.blogger.com/atom/ns#" term="Data Structures"/><category scheme="http://www.blogger.com/atom/ns#" term="LeetCode"/><title type='text'>Search in a Binary Search Tree LeetCode Challenge June Day 15 </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #ffd966;&quot;&gt;Quoestion:&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp;&lt;a href=&quot;https://leetcode.com/problems/search-in-a-binary-search-tree/&quot; target=&quot;_blank&quot;&gt;ClickHere&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span color=&quot;rgba(0, 0, 0, 0.650980392156863)&quot; face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Example:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span color=&quot;rgba(0, 0, 0, 0.650980392156863)&quot; face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Given Tree&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span color=&quot;rgba(0, 0, 0, 0.650980392156863)&quot; face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #a00015; font-size: large;&quot;&gt;You Should Return This:&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinv8R8iZZ7Zfo9acdWwpSDuJYB3bUUg5_ksZ3xRYdydCt9N90u2VDGwEitayfTUOfnBzTKHXyVEMUE_JiWDejyBB23UphX1kP2A9idwHQZK5Mn0H4yjMukPY2AzNr1paB5iz2VY62fWjo/s1600/searching+treenode.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinv8R8iZZ7Zfo9acdWwpSDuJYB3bUUg5_ksZ3xRYdydCt9N90u2VDGwEitayfTUOfnBzTKHXyVEMUE_JiWDejyBB23UphX1kP2A9idwHQZK5Mn0H4yjMukPY2AzNr1paB5iz2VY62fWjo/s400/searching+treenode.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #a00015; font-size: large;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbMeG1Q3SHHf_nBGx451r6ZLloN5_DWGRH4LyXBO-kgW-wohu__j9ilV1RnfcUYUhq49hl4tyvlAudDTzGpDvlOgmJEKR-EcsMGEEtes2B_lMUQfclh83t7y5ZqB9RCQe_dmDLNikjBXo/s1600/searching+treenode+2.jpg&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbMeG1Q3SHHf_nBGx451r6ZLloN5_DWGRH4LyXBO-kgW-wohu__j9ilV1RnfcUYUhq49hl4tyvlAudDTzGpDvlOgmJEKR-EcsMGEEtes2B_lMUQfclh83t7y5ZqB9RCQe_dmDLNikjBXo/s400/searching+treenode+2.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;Recursive Approach:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;1.Check if root&#39;s value is equal to search value or not if yes return root&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;2.if search value is &amp;gt; root&#39;s value update root as root.right&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;3.&lt;/span&gt;&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;if search value is &amp;lt; root&#39;s value update root as root.left&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;4.Repeat above steps until leaf node&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;5.If search value is not found then return None&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: orange;&quot;&gt;Python Code:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;class Solution:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; def searchBST(self, root: TreeNode, value: int) -&amp;gt; TreeNode:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(root.val)&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if root.val == value:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return root&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if root.val &amp;lt; value:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if root.right:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return self.searchBST(root.right,value)&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if root.val &amp;gt; value:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if root.left:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return self.searchBST(root.left,value)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return None&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/3426886120056785475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/3426886120056785475' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/3426886120056785475'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/3426886120056785475'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/06/search-in-binary-search-tree-leetcode.html' title='Search in a Binary Search Tree LeetCode Challenge June Day 15 '/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinv8R8iZZ7Zfo9acdWwpSDuJYB3bUUg5_ksZ3xRYdydCt9N90u2VDGwEitayfTUOfnBzTKHXyVEMUE_JiWDejyBB23UphX1kP2A9idwHQZK5Mn0H4yjMukPY2AzNr1paB5iz2VY62fWjo/s72-c/searching+treenode.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-2903441836017359525</id><published>2020-06-15T15:29:00.002+05:30</published><updated>2020-09-18T11:09:49.083+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Coding Problems"/><category scheme="http://www.blogger.com/atom/ns#" term="Data Structures"/><category scheme="http://www.blogger.com/atom/ns#" term="LeetCode"/><title type='text'>Remove Nth Node From End of List  LeetCode  Solution</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #ffd966;&quot;&gt;Quoestion:&amp;nbsp;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;a href=&quot;https://leetcode.com/problems/remove-nth-node-from-end-of-list/&quot; target=&quot;_blank&quot;&gt;ClickHere&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN7oJ-RPWqewbKu3VzuAyBqimPfuZdm6vSyFn3iH5AvYdcUbKEDbe_MRBcya_VJPMVLBSCwduOwvVbbcm9HDFMbtyGhP5nUNbGpFDs3rB4Ndw2Szj-YrYQBiUwFY-Azhq0SX78Tbw5VYg/s1600/remove+nth+node.jpg&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN7oJ-RPWqewbKu3VzuAyBqimPfuZdm6vSyFn3iH5AvYdcUbKEDbe_MRBcya_VJPMVLBSCwduOwvVbbcm9HDFMbtyGhP5nUNbGpFDs3rB4Ndw2Szj-YrYQBiUwFY-Azhq0SX78Tbw5VYg/s640/remove+nth+node.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #ffd966; font-size: large;&quot;&gt;Algorithm:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;step1:intialize slow and fast pointers with head&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;step2:Move forward fast pointer by n positions&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;step3:if fast.next is None then return head.next&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;step4:Move forward fast and slow pointers by one step until fast.next == None.&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;step5:slow.next = slow.next.next&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: lime; font-size: large;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: lime; font-size: large;&quot;&gt;&lt;b&gt;Python Code&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;class Solution:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; def removeNthFromEnd(self, head: ListNode, n: int) -&amp;gt; ListNode:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; slow = fast = head&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i in range(n):&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(fast.val)&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fast = fast.next&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if fast is None:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return head.next&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while fast.next:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(fast.val,slow.val)&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fast= fast.next&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; slow = slow.next&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; slow.next = slow.next.next&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #073763; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return head&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: lime; font-size: large;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/2903441836017359525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/2903441836017359525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/2903441836017359525'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/2903441836017359525'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/06/remove-nth-node-from-end-of-list.html' title='Remove Nth Node From End of List  LeetCode  Solution'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN7oJ-RPWqewbKu3VzuAyBqimPfuZdm6vSyFn3iH5AvYdcUbKEDbe_MRBcya_VJPMVLBSCwduOwvVbbcm9HDFMbtyGhP5nUNbGpFDs3rB4Ndw2Szj-YrYQBiUwFY-Azhq0SX78Tbw5VYg/s72-c/remove+nth+node.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5963370890691448449.post-2086408371688989561</id><published>2020-06-15T10:35:00.002+05:30</published><updated>2020-09-18T11:12:13.586+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Coding Problems"/><category scheme="http://www.blogger.com/atom/ns#" term="Data Structures"/><category scheme="http://www.blogger.com/atom/ns#" term="GeeksForGeeks"/><category scheme="http://www.blogger.com/atom/ns#" term="LeetCode"/><title type='text'>Intersection of Two Linked Lists LeetCode And GeeksForGeeks Solution</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #ffd966;&quot;&gt;Quoestion:&lt;/span&gt;&lt;span color=&quot;rgba(0, 0, 0, 0.65)&quot; style=&quot;background-color: white;&quot;&gt;Find the point of intersection of two singly linked lists begins.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;span color=&quot;rgba(0, 0, 0, 0.65)&quot; style=&quot;background-color: white;&quot;&gt;Algorithm:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;span color=&quot;rgba(0, 0, 0, 0.65)&quot; style=&quot;background-color: white;&quot;&gt;1.Calculate the size of both linked lists as L1,L2&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;span color=&quot;rgba(0, 0, 0, 0.65)&quot; style=&quot;background-color: white;&quot;&gt;2.Find the absolute difference of L1,L2 as d = L1-L2&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;span color=&quot;rgba(0, 0, 0, 0.65)&quot; style=&quot;background-color: white;&quot;&gt;3.Move d nodes in longer linked list&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;span color=&quot;rgba(0, 0, 0, 0.65)&quot; style=&quot;background-color: white;&quot;&gt;4.Then move by one step in both Linked Lists and Check if p==q if they are eaqual return p&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;span color=&quot;rgba(0, 0, 0, 0.65)&quot; style=&quot;background-color: white;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7BwTWCxEsfdxGqNyxAh2ErDV7eBgGzQPu2cUJdI6InecHPJmd-p5cM9OarfTXC0YzXtcETM0OBWiYJKFtHXCDu0LjnIcS8kPoWTzWXsMMPeKLhyNJayLc1eVnOsXop541yXVX6KNw0so/s1600/LinkedList+Merged+1.jpg&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7BwTWCxEsfdxGqNyxAh2ErDV7eBgGzQPu2cUJdI6InecHPJmd-p5cM9OarfTXC0YzXtcETM0OBWiYJKFtHXCDu0LjnIcS8kPoWTzWXsMMPeKLhyNJayLc1eVnOsXop541yXVX6KNw0so/s400/LinkedList+Merged+1.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXHgsy2HjDVCLtSOuoZYTbCX1dH61Y9lTsw2gusV3ZIx3DwHC8xo5etYQ3dmekwCVQced_k0gQ213T1Dy_3C4vcXpnmai338dV3FeIgigFGCH8rTjIpxqfDS_IM5wwlr2RTeKb7PrPdMY/s1600/LinkedList+Merged+2.jpg&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXHgsy2HjDVCLtSOuoZYTbCX1dH61Y9lTsw2gusV3ZIx3DwHC8xo5etYQ3dmekwCVQced_k0gQ213T1Dy_3C4vcXpnmai338dV3FeIgigFGCH8rTjIpxqfDS_IM5wwlr2RTeKb7PrPdMY/s400/LinkedList+Merged+2.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-S3J_2I55l4KEjhi7a04jd_XGw2NryXU8c2nCvuHT9bq-IPFTrtDYAqN09hkARZGli2qQcpXPX9YWlsSKjaL2U4i8kM13IgZZYDSRQd5hFJfn8ahUiVSIXRFJMh3jR4WeH4RLSWZcJo0/s1600/LinkedList+Merged+3.jpg&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-S3J_2I55l4KEjhi7a04jd_XGw2NryXU8c2nCvuHT9bq-IPFTrtDYAqN09hkARZGli2qQcpXPX9YWlsSKjaL2U4i8kM13IgZZYDSRQd5hFJfn8ahUiVSIXRFJMh3jR4WeH4RLSWZcJo0/s400/LinkedList+Merged+3.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-fdfsW4ZLU2Tzb0duSNrUpyhj9lLRtSP8Pi9Cxw_9mPn6K2RUGrDqh5-kj-kUJqSiz9KhNqRf3UAU13oPTLhizPGhfBMT57e7EbVoIoH72zZFlkBAFqBpH9i8pltkNpC5Nj-s_mBBfT0/s1600/LinkedList+Merged+4.jpg&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-fdfsW4ZLU2Tzb0duSNrUpyhj9lLRtSP8Pi9Cxw_9mPn6K2RUGrDqh5-kj-kUJqSiz9KhNqRf3UAU13oPTLhizPGhfBMT57e7EbVoIoH72zZFlkBAFqBpH9i8pltkNpC5Nj-s_mBBfT0/s400/LinkedList+Merged+4.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #ffd966; font-size: large;&quot;&gt;Python Code:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;# Definition for singly-linked list.&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;class ListNode:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; def __init__(self, x):&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.val = x&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.next = None&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;class Solution:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; def getIntersectionNode(self, headA: ListNode, headB: ListNode) -&amp;gt; ListNode:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; l1size,l2size = 0,0&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; node = headA&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while node:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; l1size+=1&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; node = node.next&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; node = headB&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while node:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; node = node.next&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; l2size+=1&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; d = abs(l1size-l2size)&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # print(d,l1size,l2size)&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if l1size&amp;gt;l2size:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i in range(d):&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; headA = headA.next&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # print(headA.val)&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for i in range(d):&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; headB = headB.next&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while True:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if headA == headB:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return headA&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if headA:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; headA = headA.next&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if headB:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; headB = headB.next&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else:&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # print(headA.val,headB.val)&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;color: #b4a7d6; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;font-size: large;&quot;&gt;&lt;span color=&quot;rgba(0, 0, 0, 0.65)&quot; style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://codetoskill.blogspot.com/feeds/2086408371688989561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5963370890691448449/2086408371688989561' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/2086408371688989561'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5963370890691448449/posts/default/2086408371688989561'/><link rel='alternate' type='text/html' href='https://codetoskill.blogspot.com/2020/06/intersection-of-two-linked-lists.html' title='Intersection of Two Linked Lists LeetCode And GeeksForGeeks Solution'/><author><name>KRISHNA VAMSI NADH</name><uri>http://www.blogger.com/profile/08713231086606399977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR-I3V6nEU3MCrPLhSXJ0H5LlgbAErrmaPfdnD1JsItfpxXS6bhwprMQLXYtMyFhHfrMwMI4kN2wLFV8Olg7id-wjqaX6yoxanSPj2biH460wtkQ3gDYJiy8RHx67uw/s113/fc26897e-8f5b-4cb0-aec9-41b40474c0f4_200x200+%281%29.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7BwTWCxEsfdxGqNyxAh2ErDV7eBgGzQPu2cUJdI6InecHPJmd-p5cM9OarfTXC0YzXtcETM0OBWiYJKFtHXCDu0LjnIcS8kPoWTzWXsMMPeKLhyNJayLc1eVnOsXop541yXVX6KNw0so/s72-c/LinkedList+Merged+1.jpg" height="72" width="72"/><thr:total>0</thr:total></entry></feed>