"SELECT pro.id, pro.title, pro.budget, COUNT(employeeid) AS numemployees, SUM(e.salary) as total_salaries
FROM projects pro
JOIN employeesprojects ep ON ep.projectid = pro.id
JOIN employees e ON e.id = ep.employee_id
GROUP BY project_id;
`"
Zacharias E. - "SELECT pro.id, pro.title, pro.budget, COUNT(employeeid) AS numemployees, SUM(e.salary) as total_salaries
FROM projects pro
JOIN employeesprojects ep ON ep.projectid = pro.id
JOIN employees e ON e.id = ep.employee_id
GROUP BY project_id;
`"See full answer
"/*
You are with your friends in a castle, where there are multiple rooms named after flowers. Some of the rooms contain treasures - we call them the treasure rooms.
Each room contains a single instruction that tells you which room to go to next.
* instructions1 and treasurerooms_1 *
lily* --------- daisy sunflower
| | |
v v v
jasmin --> tulip* violet* ----> rose* -->
^ | ^ ^ |
"
Azeezat R. - "/*
You are with your friends in a castle, where there are multiple rooms named after flowers. Some of the rooms contain treasures - we call them the treasure rooms.
Each room contains a single instruction that tells you which room to go to next.
* instructions1 and treasurerooms_1 *
lily* --------- daisy sunflower
| | |
v v v
jasmin --> tulip* violet* ----> rose* -->
^ | ^ ^ |
"See full answer
"class Solution:
def lengthOfLIS(self, nums: List[int]) -> int:
temp = [nums[0]]
for num in nums:
if temp[-1]< num:
temp.append(num)
else:
index = bisect_left(temp,num)
temp[index] = num
return len(temp)
"
Mahima M. - "class Solution:
def lengthOfLIS(self, nums: List[int]) -> int:
temp = [nums[0]]
for num in nums:
if temp[-1]< num:
temp.append(num)
else:
index = bisect_left(temp,num)
temp[index] = num
return len(temp)
"See full answer
"Even more faster and vectorized version, using np.linalg.norm - to avoid loop and np.argpartition to select lowest k. We dont need to sort whole array - we need to be sure that first k elements are lower than the rest.
import numpy as np
def knn(Xtrain, ytrain, X_new, k):
distances = np.linalg.norm(Xtrain - Xnew, axis=1)
k_indices = np.argpartition(distances, k)[:k] # O(N) selection instead of O(N log N) sort
return int(np.sum(ytrain[kindices]) > k / 2.0)
`"
Dinar M. - "Even more faster and vectorized version, using np.linalg.norm - to avoid loop and np.argpartition to select lowest k. We dont need to sort whole array - we need to be sure that first k elements are lower than the rest.
import numpy as np
def knn(Xtrain, ytrain, X_new, k):
distances = np.linalg.norm(Xtrain - Xnew, axis=1)
k_indices = np.argpartition(distances, k)[:k] # O(N) selection instead of O(N log N) sort
return int(np.sum(ytrain[kindices]) > k / 2.0)
`"See full answer
Machine Learning Engineer
Coding
+2 more
🧠 Want an expert answer to a question? Saving questions lets us know what content to make next.
"naive solution:
def countprefixpairs(words):
n = len(words)
count = 0
for i in range(n):
for j in range(i + 1, n):
if words[i].startswith(words[j]) or words[j].startswith(words[i]):
count += 1
return count
using tries for when the list of words is very long:
from collections import Counter
class TrieNode:
def init(self):
self.children = {}
self.count = 0 # To count the number of words ending at this node"
Anonymous Unicorn - "naive solution:
def countprefixpairs(words):
n = len(words)
count = 0
for i in range(n):
for j in range(i + 1, n):
if words[i].startswith(words[j]) or words[j].startswith(words[i]):
count += 1
return count
using tries for when the list of words is very long:
from collections import Counter
class TrieNode:
def init(self):
self.children = {}
self.count = 0 # To count the number of words ending at this node"See full answer
"SELECT
name
,type
,ROUND(
CASE
WHEN type = 'Electronic' THEN price * 0.90
WHEN type = 'Clothing' THEN price * 0.80
WHEN type = 'Grocery' THEN price * 0.95
WHEN type = 'Book' THEN price * 0.85
ELSE price
END, 2
)
as discounted_price
FROM products
`"
Aikya S. - "SELECT
name
,type
,ROUND(
CASE
WHEN type = 'Electronic' THEN price * 0.90
WHEN type = 'Clothing' THEN price * 0.80
WHEN type = 'Grocery' THEN price * 0.95
WHEN type = 'Book' THEN price * 0.85
ELSE price
END, 2
)
as discounted_price
FROM products
`"See full answer
"SELECT
items.item_category,
SUM(orders.orderquantity) AS totalunitsorderedlast7days
FROM orders
JOIN items
ON orders.itemid = items.itemid
WHERE orders.order_date BETWEEN DATE('now', '-6 days') AND DATE('now')
GROUP BY items.item_category
`"
Salome L. - "SELECT
items.item_category,
SUM(orders.orderquantity) AS totalunitsorderedlast7days
FROM orders
JOIN items
ON orders.itemid = items.itemid
WHERE orders.order_date BETWEEN DATE('now', '-6 days') AND DATE('now')
GROUP BY items.item_category
`"See full answer
"
from typing import List
def getnumberof_islands(binaryMatrix: List[List[int]]) -> int:
if not binaryMatrix: return 0
rows = len(binaryMatrix)
cols = len(binaryMatrix[0])
islands = 0
for r in range(rows):
for c in range(cols):
if binaryMatrixr == 1:
islands += 1
dfs(binaryMatrix, r, c)
return islands
def dfs(grid, r, c):
if (
r = len(grid)
"
Rick E. - "
from typing import List
def getnumberof_islands(binaryMatrix: List[List[int]]) -> int:
if not binaryMatrix: return 0
rows = len(binaryMatrix)
cols = len(binaryMatrix[0])
islands = 0
for r in range(rows):
for c in range(cols):
if binaryMatrixr == 1:
islands += 1
dfs(binaryMatrix, r, c)
return islands
def dfs(grid, r, c):
if (
r = len(grid)
"See full answer
"Questions to ask :
Are there negative values in the input array? Interview : YES
Will the product of two number fit into 32-bit Integer. If not, will it fit 64-bit Integer. If not, then is it safe to use Big Integer? Interview : let's worry only about 32 bit Integer
What should we return if the input array is null or size (size of input array) is less than 2? Return 0
From above Information:
General approach is as follows :
a) Track smallest 2 elements in the array -> p"
Rajendra D. - "Questions to ask :
Are there negative values in the input array? Interview : YES
Will the product of two number fit into 32-bit Integer. If not, will it fit 64-bit Integer. If not, then is it safe to use Big Integer? Interview : let's worry only about 32 bit Integer
What should we return if the input array is null or size (size of input array) is less than 2? Return 0
From above Information:
General approach is as follows :
a) Track smallest 2 elements in the array -> p"See full answer
"Approach 1: Use sorting and return the kth largest element from the sorted list. Time complexity: O(nlogn)
Approach 2: Use max heap and then select the kth largest element. time complexity: O(n+logn)
Approach 3: Quickselect. Time complexity O(n)
I explained my interviewer the 3 approaches. He told me to solve in a naive manner. Used Approach 1 had some time left so coded approach 3 also
The average time complexity of Quickselect is O(n), making it very efficient for its purpose. However, in"
GalacticInterviewer - "Approach 1: Use sorting and return the kth largest element from the sorted list. Time complexity: O(nlogn)
Approach 2: Use max heap and then select the kth largest element. time complexity: O(n+logn)
Approach 3: Quickselect. Time complexity O(n)
I explained my interviewer the 3 approaches. He told me to solve in a naive manner. Used Approach 1 had some time left so coded approach 3 also
The average time complexity of Quickselect is O(n), making it very efficient for its purpose. However, in"See full answer
"from typing import List
def three_sum(nums: List[int]) -> List[List[int]]:
nums.sort()
triplets = set()
for i in range(len(nums) - 2):
firstNum = nums[i]
l = i + 1
r = len(nums) - 1
while l 0:
r -= 1
elif potentialSum < 0:
l += 1
"
Anonymous Roadrunner - "from typing import List
def three_sum(nums: List[int]) -> List[List[int]]:
nums.sort()
triplets = set()
for i in range(len(nums) - 2):
firstNum = nums[i]
l = i + 1
r = len(nums) - 1
while l 0:
r -= 1
elif potentialSum < 0:
l += 1
"See full answer
"def encode(root):
if not root:
return []
def dfs(node):
if not node:
return
res.append(node.val)
res.append(len(node,children))
for child_node in node.children:
dfs(child_node)
res = []
dfs(root)
return res
def decode(arr):
if not arr:
return None
n = len(arr)
i = 0
def dfs(val, children_count):
if children_count == 0:
return Node(val)
cur_node = Node(val)
cur_node.children = []
for j in range(children_count):
nonlocal i
i += 2
cur_node.children.append(dfs(arr[i], arr[i"
Ying T. - "def encode(root):
if not root:
return []
def dfs(node):
if not node:
return
res.append(node.val)
res.append(len(node,children))
for child_node in node.children:
dfs(child_node)
res = []
dfs(root)
return res
def decode(arr):
if not arr:
return None
n = len(arr)
i = 0
def dfs(val, children_count):
if children_count == 0:
return Node(val)
cur_node = Node(val)
cur_node.children = []
for j in range(children_count):
nonlocal i
i += 2
cur_node.children.append(dfs(arr[i], arr[i"See full answer
"\# Definition for a binary tree node.
class TreeNode:
def init(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def maxPathSum(self, root: TreeNode) -> int:
self.max_sum = float('-inf')"
Jerry O. - "\# Definition for a binary tree node.
class TreeNode:
def init(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def maxPathSum(self, root: TreeNode) -> int:
self.max_sum = float('-inf')"See full answer
"Write a function which Caesar ciphers all the strings so that the first character is "a". Use ascii code points and the modulo operator to do this.
Use this function to create a hashmap between each string and the CC-a string. Then go through each key:value pair in the hashmap, and use the CC-a ciphered value as the key in a new defaultdict(list), adding the original string to the value field in the output."
Michael B. - "Write a function which Caesar ciphers all the strings so that the first character is "a". Use ascii code points and the modulo operator to do this.
Use this function to create a hashmap between each string and the CC-a string. Then go through each key:value pair in the hashmap, and use the CC-a ciphered value as the key in a new defaultdict(list), adding the original string to the value field in the output."See full answer
"def changeString(org: str,target:str) -> bool:
lOrg = len(org)
lTarget = len(target)
\# They have to be equal in lenght
if lOrg != lTarget:
return False
counter1 = Counter(org)
counter2 = Counter(target)
\# Counter internally iterates through the input sequence, counts the number of times a given object occurs, and stores objects as keys and the counts as values.
if counter1 != counter2:
return False
diff = sum(org[i] != target[i] for i in range(n))
return diff == 2 or (diff == 0 and any(v > 1 f"
Rafał P. - "def changeString(org: str,target:str) -> bool:
lOrg = len(org)
lTarget = len(target)
\# They have to be equal in lenght
if lOrg != lTarget:
return False
counter1 = Counter(org)
counter2 = Counter(target)
\# Counter internally iterates through the input sequence, counts the number of times a given object occurs, and stores objects as keys and the counts as values.
if counter1 != counter2:
return False
diff = sum(org[i] != target[i] for i in range(n))
return diff == 2 or (diff == 0 and any(v > 1 f"See full answer