From 7229d90bde0dde9192d9595972e7cea6595f3578 Mon Sep 17 00:00:00 2001 From: lokendra1704 Date: Tue, 14 Jul 2020 00:15:19 +0530 Subject: [PATCH 1/2] 1513 --- 1513_NoOfSubstrwithonly1s.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 1513_NoOfSubstrwithonly1s.py diff --git a/1513_NoOfSubstrwithonly1s.py b/1513_NoOfSubstrwithonly1s.py new file mode 100644 index 00000000..60ba748f --- /dev/null +++ b/1513_NoOfSubstrwithonly1s.py @@ -0,0 +1,22 @@ +class Solution: + def numSub(self, s: str) -> int: + if not s: return 0 + + def counter(n): + return (n * (n + 1)) // 2 + + i = 0 + lengths = [] + while i < len(s): + if s[i] == '1': + localtotal = 0 + while i < len(s) and s[i] == '1': + localtotal += 1 + i += 1 + lengths.append(localtotal) + else: + i += 1 + total = 0 + for i in lengths: + total += counter(i) + return total % (10**9 + 7) From c172772dbd5fbc79f352494dfff433c7fc9ce3d8 Mon Sep 17 00:00:00 2001 From: lokendra1704 Date: Thu, 16 Jul 2020 18:39:36 +0530 Subject: [PATCH 2/2] Upload: "Flower Planting with No adjacent"-Python --- 1513_NoOfSubstrwithonly1s.py | 22 ------------- Python/1042_FlowerPlantingwithNoAdjacent.py | 34 +++++++++++++++++++++ README.md | 10 ++++++ 3 files changed, 44 insertions(+), 22 deletions(-) delete mode 100644 1513_NoOfSubstrwithonly1s.py create mode 100644 Python/1042_FlowerPlantingwithNoAdjacent.py diff --git a/1513_NoOfSubstrwithonly1s.py b/1513_NoOfSubstrwithonly1s.py deleted file mode 100644 index 60ba748f..00000000 --- a/1513_NoOfSubstrwithonly1s.py +++ /dev/null @@ -1,22 +0,0 @@ -class Solution: - def numSub(self, s: str) -> int: - if not s: return 0 - - def counter(n): - return (n * (n + 1)) // 2 - - i = 0 - lengths = [] - while i < len(s): - if s[i] == '1': - localtotal = 0 - while i < len(s) and s[i] == '1': - localtotal += 1 - i += 1 - lengths.append(localtotal) - else: - i += 1 - total = 0 - for i in lengths: - total += counter(i) - return total % (10**9 + 7) diff --git a/Python/1042_FlowerPlantingwithNoAdjacent.py b/Python/1042_FlowerPlantingwithNoAdjacent.py new file mode 100644 index 00000000..5b54310c --- /dev/null +++ b/Python/1042_FlowerPlantingwithNoAdjacent.py @@ -0,0 +1,34 @@ +#Difficulty = Medium +#Submission Speed = 85.81% +''' +#The Algorithm is similar to Graph coloring algorithm. +After making the graph from edge lists, +We will traverse every node one by one. For every node, create a fresh new list of choices of flowers +While Traversing a particular node (say NODE A), we will check its neighbours and if any of the neighbour has been assigned +flower (say flower 'X') we will remove that flower ('X') from the list of choices of the corresponding Node (NODE A) +''' +''' +If E = Number of Edges + V = Number of Vertices/Nodes +Time Complexity = O(V+E) +Space Complexity = O(2V+E) +''' +from collections import defaultdict +class Solution: + def gardenNoAdj(self, N, paths): + + #Create Graph + graph = defaultdict(list) + for i in paths: + graph[i[0]].append(i[1]) #Since Graph is Bidirectional, we need to add edge both sides + graph[i[1]].append(i[0]) + flowers = [] + for i in range(1, N + 1): #We will traverse every node one by one + choice = [1, 2, 3, 4] #create a fresh new list of choices of flowers + for k in graph[i]: #check its neighbours + try: + choice.remove(flowers[k-1]) #if any of the neighbour has been assigned flower (say flower 'X') we will remove that flower ('X') + except: + pass + flowers.append(choice[0]) #Select the first flower from the remaining choices + return flowers \ No newline at end of file diff --git a/README.md b/README.md index 9cc57fff..cd2052f8 100644 --- a/README.md +++ b/README.md @@ -95,6 +95,16 @@ This repository consists of the solutions of the problems from LeetCode platform | # | Title | Solution | Time | Space | Difficulty | Tag | Note| |-----|---------------- | --------------- | --------------- | --------------- | ------------- |--------------|-----| +
+
+ ⬆️ Back to Top +
+
+ +## Graph +| # | Title | Solution | Time | Space | Difficulty | Tag | Note| +|-----|---------------- | --------------- | --------------- | --------------- | ------------- |--------------|-----| +|1042|[Flower Planting with No Adjacent](https://leetcode.com/problems/flower-planting-with-no-adjacent/)|[Python](./Python/1042_FlowerPlantingwithNoAdjacent.py)|_O(V+E)_|_O(2V+E)_|Medium|Graph|Graph Coloring|