Unique Path problem with Robot Traversal in python
How do you respond to a colleague from another team when they're wrongly expecting that you'll help them?
Creepy dinosaur pc game identification
Why can Carol Danvers change her suit colours in the first place?
Does the Linux kernel need a file system to run?
Mimic lecturing on blackboard, facing audience
Did arcade monitors have same pixel aspect ratio as TV sets?
How to hide some fields of struct in C?
Calculate sum of polynomial roots
It grows, but water kills it
What is the evidence for the "tyranny of the majority problem" in a direct democracy context?
Yosemite Fire Rings - What to Expect?
Does Doodling or Improvising on the Piano Have Any Benefits?
What to do when eye contact makes your subordinate uncomfortable?
Can a Canadian Travel to the USA twice, less than 180 days each time?
How to cover method return statement in Apex Class?
How could a planet have erratic days?
Can disgust be a key component of horror?
What are the advantages of simplicial model categories over non-simplicial ones?
Why does a simple loop result in ASYNC_NETWORK_IO waits?
What should you do if you miss a job interview (deliberately)?
Fear of getting stuck on one programming language / technology that is not used in my country
Can I say "fingers" when referring to toes?
What is the highest possible scrabble score for placing a single tile
Why would a new[] expression ever invoke a destructor?
Unique Path problem with Robot Traversal in python
$begingroup$
I got this problem during a mock interview, and I would like to get code review for the backtracking solution.
Robot Paths
from Leetcode https://leetcode.com/problems/unique-paths/description/
Prompt: Given a matrix of zeroes, determine how many unique paths exist
from the top left corner to the bottom right corner
#
Input: An Array of Array of Integers (matrix)
Output: Integer
#
# Example: matrix = [[0,0,0,0],
# [0,0,0,0],
# [0,0,0,0]]
#
# robotPaths(matrix) = 38
#
#
# matrix = [[0,0,0],
# [0,0,0]]
#
# robotPaths(matrix) = 4
# Note: From any point, you can travel in the four cardinal directions. I decided to do backtracking approach to solve this problem.
# (north, south, east, west). A path is valid as long as it travels
# from the top left corner to the bottom right corner, does not go
# off of the matrix, and does not travel back on itself
def robot_paths(matrix):
num_of_rows = len(matrix)
num_of_cols = len(matrix[0])
def traverse(row, col):
nonlocal num_of_rows
nonlocal num_of_cols
# is row and col inside the boundaries
if row < 0 or row >= num_of_rows or col < 0 or col >= num_of_cols:
return 0
# has row, col already been visited
if matrix[row][col] == 1:
return 0
# is row, col the destination?
if row == num_of_rows - 1 and col == num_of_cols - 1:
return 1
# mark coordinate as visited
matrix[row][col] = 1
# initialize sum of total unique paths to end from that coordinate
s = traverse(row, col + 1) + traverse(row + 1, col) + traverse(row - 1, col) + traverse(row, col - 1)
# backtrack; mark coordinate as unvisited so it can be
# used in another path
matrix[row][col] = 0
return s
return traverse(0, 0)
backtracking
$endgroup$
add a comment |
$begingroup$
I got this problem during a mock interview, and I would like to get code review for the backtracking solution.
Robot Paths
from Leetcode https://leetcode.com/problems/unique-paths/description/
Prompt: Given a matrix of zeroes, determine how many unique paths exist
from the top left corner to the bottom right corner
#
Input: An Array of Array of Integers (matrix)
Output: Integer
#
# Example: matrix = [[0,0,0,0],
# [0,0,0,0],
# [0,0,0,0]]
#
# robotPaths(matrix) = 38
#
#
# matrix = [[0,0,0],
# [0,0,0]]
#
# robotPaths(matrix) = 4
# Note: From any point, you can travel in the four cardinal directions. I decided to do backtracking approach to solve this problem.
# (north, south, east, west). A path is valid as long as it travels
# from the top left corner to the bottom right corner, does not go
# off of the matrix, and does not travel back on itself
def robot_paths(matrix):
num_of_rows = len(matrix)
num_of_cols = len(matrix[0])
def traverse(row, col):
nonlocal num_of_rows
nonlocal num_of_cols
# is row and col inside the boundaries
if row < 0 or row >= num_of_rows or col < 0 or col >= num_of_cols:
return 0
# has row, col already been visited
if matrix[row][col] == 1:
return 0
# is row, col the destination?
if row == num_of_rows - 1 and col == num_of_cols - 1:
return 1
# mark coordinate as visited
matrix[row][col] = 1
# initialize sum of total unique paths to end from that coordinate
s = traverse(row, col + 1) + traverse(row + 1, col) + traverse(row - 1, col) + traverse(row, col - 1)
# backtrack; mark coordinate as unvisited so it can be
# used in another path
matrix[row][col] = 0
return s
return traverse(0, 0)
backtracking
$endgroup$
add a comment |
$begingroup$
I got this problem during a mock interview, and I would like to get code review for the backtracking solution.
Robot Paths
from Leetcode https://leetcode.com/problems/unique-paths/description/
Prompt: Given a matrix of zeroes, determine how many unique paths exist
from the top left corner to the bottom right corner
#
Input: An Array of Array of Integers (matrix)
Output: Integer
#
# Example: matrix = [[0,0,0,0],
# [0,0,0,0],
# [0,0,0,0]]
#
# robotPaths(matrix) = 38
#
#
# matrix = [[0,0,0],
# [0,0,0]]
#
# robotPaths(matrix) = 4
# Note: From any point, you can travel in the four cardinal directions. I decided to do backtracking approach to solve this problem.
# (north, south, east, west). A path is valid as long as it travels
# from the top left corner to the bottom right corner, does not go
# off of the matrix, and does not travel back on itself
def robot_paths(matrix):
num_of_rows = len(matrix)
num_of_cols = len(matrix[0])
def traverse(row, col):
nonlocal num_of_rows
nonlocal num_of_cols
# is row and col inside the boundaries
if row < 0 or row >= num_of_rows or col < 0 or col >= num_of_cols:
return 0
# has row, col already been visited
if matrix[row][col] == 1:
return 0
# is row, col the destination?
if row == num_of_rows - 1 and col == num_of_cols - 1:
return 1
# mark coordinate as visited
matrix[row][col] = 1
# initialize sum of total unique paths to end from that coordinate
s = traverse(row, col + 1) + traverse(row + 1, col) + traverse(row - 1, col) + traverse(row, col - 1)
# backtrack; mark coordinate as unvisited so it can be
# used in another path
matrix[row][col] = 0
return s
return traverse(0, 0)
backtracking
$endgroup$
I got this problem during a mock interview, and I would like to get code review for the backtracking solution.
Robot Paths
from Leetcode https://leetcode.com/problems/unique-paths/description/
Prompt: Given a matrix of zeroes, determine how many unique paths exist
from the top left corner to the bottom right corner
#
Input: An Array of Array of Integers (matrix)
Output: Integer
#
# Example: matrix = [[0,0,0,0],
# [0,0,0,0],
# [0,0,0,0]]
#
# robotPaths(matrix) = 38
#
#
# matrix = [[0,0,0],
# [0,0,0]]
#
# robotPaths(matrix) = 4
# Note: From any point, you can travel in the four cardinal directions. I decided to do backtracking approach to solve this problem.
# (north, south, east, west). A path is valid as long as it travels
# from the top left corner to the bottom right corner, does not go
# off of the matrix, and does not travel back on itself
def robot_paths(matrix):
num_of_rows = len(matrix)
num_of_cols = len(matrix[0])
def traverse(row, col):
nonlocal num_of_rows
nonlocal num_of_cols
# is row and col inside the boundaries
if row < 0 or row >= num_of_rows or col < 0 or col >= num_of_cols:
return 0
# has row, col already been visited
if matrix[row][col] == 1:
return 0
# is row, col the destination?
if row == num_of_rows - 1 and col == num_of_cols - 1:
return 1
# mark coordinate as visited
matrix[row][col] = 1
# initialize sum of total unique paths to end from that coordinate
s = traverse(row, col + 1) + traverse(row + 1, col) + traverse(row - 1, col) + traverse(row, col - 1)
# backtrack; mark coordinate as unvisited so it can be
# used in another path
matrix[row][col] = 0
return s
return traverse(0, 0)
backtracking
backtracking
asked 3 mins ago
NinjaGNinjaG
825632
825632
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
return StackExchange.using("mathjaxEditing", function ()
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
);
);
, "mathjax-editing");
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "196"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f216023%2funique-path-problem-with-robot-traversal-in-python%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Code Review Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f216023%2funique-path-problem-with-robot-traversal-in-python%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown