Fix: Ensure all skills are tracked as files, not submodules
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# HumanEval/129
|
||||
# Loki Mode Multi-Agent Solution
|
||||
# Attempts: 1
|
||||
# Passed: True
|
||||
|
||||
def minPath(grid, k):
|
||||
"""
|
||||
Given a grid with N rows and N columns (N >= 2) and a positive integer k,
|
||||
each cell of the grid contains a value. Every integer in the range [1, N * N]
|
||||
inclusive appears exactly once on the cells of the grid.
|
||||
|
||||
You have to find the minimum path of length k in the grid. You can start
|
||||
from any cell, and in each step you can move to any of the neighbor cells,
|
||||
in other words, you can go to cells which share an edge with you current
|
||||
cell.
|
||||
Please note that a path of length k means visiting exactly k cells (not
|
||||
necessarily distinct).
|
||||
You CANNOT go off the grid.
|
||||
A path A (of length k) is considered less than a path B (of length k) if
|
||||
after making the ordered lists of the values on the cells that A and B go
|
||||
through (let's call them lst_A and lst_B), lst_A is lexicographically less
|
||||
than lst_B, in other words, there exist an integer index i (1 <= i <= k)
|
||||
such that lst_A[i] < lst_B[i] and for any j (1 <= j < i) we have
|
||||
lst_A[j] = lst_B[j].
|
||||
It is guaranteed that the answer is unique.
|
||||
Return an ordered list of the values on the cells that the minimum path go through.
|
||||
|
||||
Examples:
|
||||
|
||||
Input: grid = [ [1,2,3], [4,5,6], [7,8,9]], k = 3
|
||||
Output: [1, 2, 1]
|
||||
|
||||
Input: grid = [ [5,9,3], [4,1,6], [7,8,2]], k = 1
|
||||
Output: [1]
|
||||
"""
|
||||
n = len(grid)
|
||||
|
||||
# Find the position of cell with value 1
|
||||
row_1, col_1 = 0, 0
|
||||
for i in range(n):
|
||||
for j in range(n):
|
||||
if grid[i][j] == 1:
|
||||
row_1, col_1 = i, j
|
||||
break
|
||||
|
||||
# Find the smallest neighbor of cell with value 1
|
||||
min_neighbor = n * n + 1
|
||||
directions = [(-1, 0), (1, 0), (0, -1), (0, 1)]
|
||||
for dr, dc in directions:
|
||||
nr, nc = row_1 + dr, col_1 + dc
|
||||
if 0 <= nr < n and 0 <= nc < n:
|
||||
min_neighbor = min(min_neighbor, grid[nr][nc])
|
||||
|
||||
# Build the result: alternating pattern of 1 and min_neighbor
|
||||
result = []
|
||||
for i in range(k):
|
||||
if i % 2 == 0:
|
||||
result.append(1)
|
||||
else:
|
||||
result.append(min_neighbor)
|
||||
|
||||
return result
|
||||
Reference in New Issue
Block a user