0% found this document useful (0 votes)
27 views

Jupyter Code

Jupiter code

Uploaded by

linaelm742
Copyright
© © All Rights Reserved
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
27 views

Jupyter Code

Jupiter code

Uploaded by

linaelm742
Copyright
© © All Rights Reserved
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 20
ovive02s 12.52 Untidedt - Jupyter Notebook Entrée [3]: def maxSubsetSum(arr): n = len(arr) dp = arr.copy() maxi_@ = max(@,arr[0]) maxi_1 = max(@,arr(1]) dpe] = maxi_e dp[1] = maxi_t for i in range(2,n): dp[i] = max(®,arr[i}+maxi_e) maxi_@ = maxi_1 maxi_1 = max(maxi_t,dp[]) print (dp) return max(dp) Entrée [4]: arr = [3, 2, 1, 10] maxSubsetSum(arr) (3, 2, 4, 12] out[4]: 12 Entrée [1]: def profit_maximal (prix): if not prix: return @ prix_min = prix[@] profit_max = @ for p in prix: profit_potentiel = p - prixmin profit_max = max(profit_max, profit_potentiel) prix_min = min(prix_min, p) return profit_max Entrée [2]: prices = (108, 90, 50, 82, 132, 100] Entrée [4]: profit_maxinal (prices) outa 80 localhost:88@8inotebooks/Desktop/Unttled pyr +120 ovrti2023 12.52 Untied! - Jupyter Notebook Entrée [5]: def profit_maximal_2_transac(prix): if not prix: return @ # Nombre maximal de transactions. ka2 n= len(prix) dp = [[@ for _ in range(K+1)] for in range(n)] for j in range(1, K#+1): max_val = -prix[o] for i in range(1, n): dpliJ[3] = max(dp[i-2][J], prix[i] + max_val) max_val = max(max_val, dp[i-1][j-1] - prix[i]) return dp[n-1][k] prix_futurs = [100, 180, 260, 310, 40, 535, 695] print (profit_maximal_2 transac(prix_futurs)) # Cela devrait afficher Le pri 865 Entrée [6]: prices = [10, 22, 5, 75, 65, 80] profit_maximal_2_transac(prices) out(s}: 87 Entrée [2]: NameError Traceback (most recent call las t) Cell In[2], line 22 19 return max(max_sum, ©) 21 # Test the function with an example ---> 22 getMaxProfitoptimized([100, 200, -308, 400, -100, 200], 3) NameError: name ‘getMaxProfitoptimized’ is not defined localhost 8888/notebooks/Desktop/Untiledipynt 220 ovrti2023 12.52 Untied! - Jupyter Notebook Entrée [3]: def getMaxProfitoptimized(pl, k): n= len(pl) max_profit = 0 for i in range(1, k + 1): # Calculate the sum of the first window of size i window_sum = sum(p1[:4]) max_sum = window_sum # Slide the window through the array for j in range(i, n): # Add the next element and remove the first element from the pr¢ window_sum += pl[j] - pl[j - i] max_sum = max(max_sum, window_sum) # Update the max profit if this window size gives a better profit max_profit = max(max_profit, max_sum) return max_profit # Test the function with an example getMaxProfitoptimized([109, 200, -300, 400, -100, 200], 3) out[(3]: see Entrée [7]: def getMaxProfitoP(pl, k): n= len(pl ifn == 0: return @ dp = [9] *n dp[2} = ple] max_sum = dp[@] for i in range(1, n): ifi @ else pl[i] else: # Once we reach k elements, we need to consider subtracting the dp[i] = max(dp[i - 1] + pl[4] - pl{i - k], pl[4]) # Return the maximum value in dp, which indicates the maximum profit return max(dp) # Test the function with an example print (getMaxProfitoP([4, 3, -2, 9, -4, 2, 7], 6)) ——EEEE! » 15, localhost 8888/notebooks/Desktop/ Untied pyr 4720 ovrti2023 12.52 Untied! - Jupyter Notebook Entrée [13]: from collections import deque def maxProfit(pl, k): n = len(pl) if n == 0: return @ # Step 1: Compute cumulative sum cumul_list = [2] * (n + 1) for i in range(i, n + 1): cumul_list[i] = cumul_list[i - 1] + pl{i - 1] # Step 2: Compute minimum List using a deque min_list = [0] * dq = deque() for i in range(1, 9 + 1): # Remove elements outside the current window while dq and dq[@] < i - k: dq.popleft() # Current minimum (front of the deque) min_list[i - 1] = cumul_list[dq[o]] if dq else 0 # Maintain deque order by values of cumul_List while dg and cumul_list[i] <= cumul_list[dq[-1]]: dq.pop() dq-append(i) # Step 3: Find maximum profit max_profit = max(cumul_list[i] - min_list[i - 1] for i in range(1, n + return max_profit print (getMaxProfitoP([4, 3, -2, 9, -4, 2, 7], 6)) 15 localhost 8888/notebooks/Desktop/Untiledipynt 520 ovrti2023 12.52 Untied! - Jupyter Notebook Entrée [12]: from collections import deque def maxProfit(pl, k): n = len(pl) if n == 0: return @ # Step 1: Compute cumulative sum cumul_list = [2] * (n + 1) for i in range(i, n + 1): cumul_list[i] = cumul_list[i - 1] + pl{i - 2] # Step 2: Compute minimum List using a deque min_list = [0] * dq = deque() for i in range(1, 9 + 1): # Remove elements outside the current window while dq and dq[@] < i - k: dq. popleft() # Current minimum (front of the deque) min_list[i - 1] = cumul_list[dq[o]] if dq else 0 # Maintain deque order by values of cumul_list while dg and cumul_list[i] <= cumul_list[dq[-1]]: dq.pop() dq-append(i) # Step 3: Find maximum profit max_profit = max(cumul_list[i] - min_list[i - 1] for i in range(1, a + return max_profit 15 localhost 8888/notebooks/Desktop/Untiledipynt 620 ovrti2023 12.52 Untied! - Jupyter Notebook Entrée [10]: def getMaxProfitOP(pl, k): n= len(pl) ifn == 0: return 0 # Initialize an array to store the maximum profit up to each point max_profit_up_to_i = [@] *n max_profit_up_to_i[@] = max(pl[0], 0) max_sum = max_profit_up_to_i[0] current_window_sum = pl[@] max_sum_last_k = p1[0] for i in range(1, n): # Update the window sum ifick: current_window_sum += pl[4] max_sum_last_k = max(max_sum_last_k, current_window_sum) else: current_window_sum += pl[i] - pl[i - k] # Calculate max profit for this position max_profit_up_to_i[i] = max(max_profit_up_to_i[i - 1] + pl[i], curr max_sum = ax(max_sum, max_profit_up_to_i[i]) return max(max_sum, 0) # Test the function with a few examples print(getMaxProfitoP([100, 200, -300, 400, -100, 200], 3)) # Expected outpu print (getMaxProfitoP([300], 3)) # Expected output print(getMaxProfitoP([4, 3, -2, 9, -4, 2, 7], 6) ) # Expected output: | see 300 19 localhost 8888/notebooks/Desktop/Untiledipynt 720 ovrti2023 12.52 Untied! - Jupyter Notebook Entrée [16]: def clean_building(plan): len(plan), len(plan[@]) [1ist(row) for row in plan] # Convert to a List of Lists for mi def dfs(r, c): ifr <@orc< ore return plan{r][c] = # Clean this cell for dr, de in [(-1, ®), (1, @), (@, -1), (@, 1)] dfs(r + dr, c + de) = R or ¢ >= C or plan(r][c] runs = 0 for r in range(R): for ¢ in range(c): if plan[r][c] dfs(r, c) runs += 1 return runs # Test the function pland = [°.4#..*5, oFWr ws, CHM TH a] clean_building(plan1) Entrée [17]: clean_building(plan1) out[17, 4 Entrée [18]: def clean_building(plan): R, C= len(plan), len(plan[2]) plan = [list(row) for row in plan} # Convert to a List of Lists for mu def dfs(r, c): if <@orc< Gorn >= Ror c >= Cor plan(r][c] in ('#', * return plan[r][c] = '.' # Clean this cell for dr, de in ((-1, 0), (1, @), (@, -1), (@, 1)]: dfs(r + dr, c + de) runs = 0 for r in range(R): for ¢ in range(c): if plan[r][c] == '*': dfs(r, c) runs += 1 return runs # Test the function pland = [°.48..*°, twee, Caen EH tt] pland = ["*#..', #8, a, Tt] print(clean_building(plan1)) # Output: 3 print(clean_building(plan2)) # Output: 2 localhost 8888/notebooks/Desktop/Untiledipynt 820 onnt202s 1282 LUntiledt - Jupyter Notebook Entrée [19]: def clean_building(plan): len(plan), len(plan[@]) [1ist(row) for row in plan] # Convert to a List of Lists for mu def dfs(r, c): ifr <@orc< ore return plan(r][c] = # Marking the cell as cleaned for dr, de in ((-1, 8), (1, @), (@, -1), (@, 1)): nr, nc = r+ dr, c+ de if @ <= nr < Rand @ <= nc < C and plan{nr][nc] == “**: dfs(nr, nc) = R or ¢ >= C or plan[r][c] runs = 0 for r in range(R): for ¢ in range(c if plan[r]{c] df s(n, c) runs += 1 return runs # Test the function pland = ['.8..8', ote, Came, ta HT] print(clean_building(plan1)) # Expected output: 3 localhost 8888/notebooks/Desktop/Untiledipynt 920 ovrti2023 12.52 Untied! - Jupyter Notebook Entrée [20]: def clean_building(plan): len(plan), len(plan[@]) [1ist(row) for row in plan] # Convert to a List of Lists for mu def dfs(r, c): ifr <@orc= R orc >= C or plan(ri{c] return False # If the cell is already visited, don't revisit if plan{r][c] == 'V': return False # Check if the cell is dirty before marking it as visited is_dirty = plan[r][c] plan(r}[c] = 'V' # Mark the cell as visited # Explore adjacent cells if dfs(r +1, ¢): is_dirty = True if dfs(r - 1, ¢): is_dirty = True if dfs(r, ¢ +41): is_dirty = True if dfs(r, ¢ = 1): is_dirty = True return is_dirty runs = 0 for r in range(R): for c in range(C): if plan[r][c] in ("*", '."): # Start DFS if it's an unvisited if dfs(r, c): # If any part of the area is dirty, incremen’ runs += 1 return runs # Test the function pland = ['.*..8', Mera, Samm plan2 = ['*#..', ‘Hey Tat Te] print(clean_building(plan1)) # Expected Output: 3 print(clean_building(plan2)) # Expected Output: 2 localhost 8888/notebooks/Desktop/Untiledipynt [1ist(row) for row in plan] # Convert to a List of Lists for mu 1120 ovrti2023 12.52 Untied! - Jupyter Notebook Entrée [22]: import numpy as np import pandas as pd from sklearn.1inear_model import LinearRegression class AnalysisbataAndFitLinearRegression: def _ init__(self} self.version = 1 def analyse_and_fit_lrm(self, path): # path to dataset is "./data/realest.csv" # dataset can be Loaded by uncommenting the Line below # data = pd.read_csv(path) def _listwise_deletion(self, data: pd.bataFrame): Feturn data.dropna() Entrée [23]: sum([True,False,True]) out[23}: 2 localhost 8888/notebooks/Desktop/Untiledipynt 1220 osrt2028 1252 Unite - Jupyter Notebook Entrée [24]: from collections import deque def clean_building(plan): R, C = len(plan), len(plan[2]) plan = [list(row) for row in plan] # Convert to a List of lists for mu def bfs(r, queue = deque([(r, c)]) is_dirty = False while queue: r, c = queue.popleft() # Continue if out of bounds or is a wall if p< @orc< @orr >= Rorc >=C or plan[r][c] continue # Skip if the cell is already visited if plan[r][c] : continue # Check if the cell is dirty if plan[r][c] == '*': is_dirty = True plan[r][c] = 'V' # Mark the cell as visited # Add adjacent cells to the queue queue.append((r + 1, c)) queue.append((r - 1, c)) queue. append((r, ¢ + 1)) queue.append((r, ¢ - 1)) return is_dirty runs = 0 for r in range(R): for c in range(c): if plan[r][c] in ('*', '.'): # Start BFS if it's an unvisited if bfs(r, c): # If any part of the area is dirty, incremen runs += 1 return runs # Test the function pland = ['.*#..8', eta, Camemee, Tt pland = ['*.. 5 Hey Tat Te] print(clean_building(plan1)) # Expected Output: 3 print(clean_building(plan2)) # Expected Output: 2 localhost 8888/notebooks/Desktop/Untiledipynt 13720 ovrti2023 12.52 Untied! - Jupyter Notebook Entrée [25]: from collections import deque def clean_building(plan): R, C= len(plan), len(plan[2]) plan = [list(row) for row in plan] # Convert to a List of lists for mu def bfs(r, queue = deque([(r, c)]) is_dirty = False while queue: r, c = queue.popleft() # Continue if out of bounds or is a wall ifr <@orc=Rorc continue # Check if the cell is dirty if plan[r][c] is_dirty = True plan[r][c] = 'V' # Mark the ceLl as visited # Add adjacent cells to the queue using map list(map(queue.append, [(r + 1, c), (r= 1, c), (r, © #41), (ry return is_dirty runs = 0 for r in range(R): for ¢ in range(c): if plan[r][c] in ("*", '.'): # Start BFS if it's an unvisited | if bfs(r, c): # If any part of the area is dirty, incremen runs += 1 return runs # Test the function pland = [".4#..*9, Far .', Came Td ai] plan = ['*#..', #8, TS] print(clean_building(plan1)) # Expected Output: 3 print(clean_building(plan2)) # Expected output: localhost 8888/notebooks/Desktop/Untiledipynt 14720 ovive02s 12.52 Untidedt - Jupyter Notebook Entrée [86]: def clean_building(plan): nb_lignes, nb_colonnes = len(plan), en(plan[@]) visited set() def explore(Ligne, colonne): should_be_cleaned = False if ligneco or ligne>=nb_lignes or colonne <@ or colonne >= nb_colon return False visited. add((ligne,colonne)) if plan[1igne][colonne] return False voisins = [(ligne+i,colonne), (1igne-1,colonne), (ligne, colonne+1), (1 if plan[1igne][colonne] should_be cleaned = True for voisin in voisins : if not voisin in visited: visited.add(voisin) should_be_cleaned = explore(voisin[@],voisin[1]) or should_ return should_be_cleaned rez = 0 for ligne in range(nb_lignes): for colonne in range(nb_colonnes) : if not (Ligne,colonne) in visited and not plan[ligne][colonne]= k = int(explore(1igne, colonne)) rezt=k return rez Entrée [88]: # Test the function pland = ['.48..*', ‘otwt on, ‘amen ta ttt) pland = ["*#..', #8, ToS] print(clean_building(plan1)) # Expected Output: 3 print(clean_building(plan2)) # Expected Output: 2 localhost:88@8inotebooks/Desktop/Unttled pyr 18120 ovive02s 12.52 Entrée [81]: Entrée [82]: out(a2): Entrée [83]: out [83]: Untiledt - Jupyter Notebook pland = [".*#..8°, MPG, CRBS a tT] nb_lignes, nb_colonnes = len(plani), len(plani[6]) visited = set() def explore(1igne, colonne): should_be_cleaned = False if Ligne<@ or ligne>=nb_lignes or colonne <® or colonne >= nb_colonnes: return False visited.add((Ligne, colonne)) if plan{ligne][colonne] = return False voisins = [(1igne+1,colonne), (1igne-1,colonne), (1igne, colonne+1), (ligne if plan[ Ligne] [colonne] should_be_cleaned = True for voisin in voisins : if not voisin in visited: visited.add(voisin) should_be_cleaned = explore(voisin[@],voisin[1]) or should _be_c return should_be_cleaned explore(2,3) True visited {C-1, 3), C4, 4), (-1, 5), (@, 2), (@, 3), (@, 4), (@, 5), (@, 6), (1, 2), (, 3), (a, 4), (1, 5), (2, 3), (2, 4)} localhost:88@8inotebooks/Desktop/Unttled pyr 16120 ovive02s 12.52 Entrée [89]: Entrée [90]: out[99]: Entrée [91]: out(91]: Untiledt - Jupyter Notebook def clean_building(plan): nb_lignes, nb_colonnes = len(plan), en(plan[@]) visited = set() def explore(ligne, colonne): if Ligne < @ or ligne >= nb_lignes or colonne < @ or colonne >= nb_ return False if (ligne, colonne) in visited or plan[ligne][colonne] return False visited.add((ligne, colonne)) should_be_cleaned = plan{ligne][colonne] == '*' voisins = [(ligne +1, colonne), (ligne - 1, colonne), (ligne, colo for voisin in voisins: if voisin not in visited should_be_cleaned explore(voisin[@], voisin{1]) return should_be_cleaned rez = 0 for ligne in range(nb_lignes): for colonne in range(nb_colonnes): if (Ligne, colonne) not in visited and plan[ligne][colonne] rez += int(explore(ligne, colonne)) return rez # Test the function pland = [°.4#..*°, tats, ‘ame a tT] plan = ['*#..', #8, BTS TY print(clean_building(plan1)) # Expected output: 3 print(clean_building(plan2)) # Expected Output: 2 1 plan = [ we ] clean_puilding(plan) 2 localhost:88@8inotebooks/Desktop/Unttled pyr ‘720 ovive02s 12.52 Untidedt - Jupyter Notebook Entrée [92]: plan = [ “aii, syeeay “tet, “wee, “sie” ] clean_building(plan) out [92, 1 Entrée [93]: plan = [ sepeHe, cere, segeye “aa, ] clean_building(plan) out[93]: 9 Entrée [94 plan = [ vesunHee, va, SENET, vayeasyee” aie ogee ] clean_building(plan) out[94]: Entrée [96 clean_building(plan) out[96]: 2 localhost:88@8inotebooks/Desktop/Unttled pyr 18120 ovrti2023 12.52 Entrée [100]: Untied - Jupyter Notebook def clean_building(plan): nb_lignes, nb_colonnes = len(plan), len(plan[o]) visited = set() def explore(ligne, colonne): to_visit = [(Ligne,colonne)] should_be_cleaned = False while to_visit: current_ligne, current_colonne = to_visit.pop() if (current_ligne, current_colonne) in visited: continue elif current_ligne < @ or current_ligne >= nb_lignes or curren continue elif plan[current_ligne] [current_colonne] continue visited.add((current_Ligne, current_colonne)) should_be_cleaned = should_be_cleaned or (plan[current_ligne][ voisins = [(current_ligne + 1, current_colonne), (current_lign for element in voisins: to_visit.append(element) return should_be_cleaned rez = 0 for ligne in range(nb_lignes): for colonne in range(nb_colonnes) if (ligne, colonne) not in visited and plan[ligne][colonne] ! rez += int(explore(ligne, colonne)) return rez # Test the function plant = ['.*#..8', ‘tHe, “amamee a aT] plan2 = ['*#..', HH, aH tt] print(clean_building(plan1)) # Expected outpu print(clean_building(plan2)) # Expected Outpu localhost 8888/notebooks/Desktop/Untiledipynt 1920 ovrti2023 12.52 Entrée [102]: out [162 Entrée [103]: out[163]: Entrée [104]: Entrée [ Untied - Jupyter Notebook plan = [ “anita, tysesye ane, ee, “at J clean_building(plan) 1 plan = [ vena, vegenene “aE vegeeeye tent et J clean_building(plan) def solution(s): seen_b = False for ele in if ele if seen_b: return False "bi: True elif ele seen_b return True localhost 8888/notebooks/Desktop/Untiledipynt 20720

You might also like