剑指offer_练习
卜木君
这个作者很懒,什么都没留下…
展开
-
二维数组中的查找
二维数组中的查找题目描述思路pythonC++后话参考 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路 也没啥说的,我感觉挺简单的,先竖着找,等找到一个值大于target,那说明那个值在上一行的右侧。但防止那些间隔很大的数组,比如:[[1 7 8] [2 5 6]]。所以再加一个挨行找的循环。 python class Solution:原创 2020-09-22 16:20:29 · 120 阅读 · 0 评论 -
矩阵中的路径
矩阵中的路径题目描述思路pythonC++后话参考 题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 : [a s a b;f d c c;e e s e] 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再次原创 2020-08-06 13:37:48 · 153 阅读 · 0 评论 -
机器人的运动范围
机器人运动范围的代码问题题目描述思路pythonC++后话 题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子? 思路 基本上就是列好坐标系,然后挨个占位置,占到位置的标1,条件不允许的就是0 python #原创 2020-07-23 17:53:40 · 120 阅读 · 0 评论 -
剪绳子问题
剪绳子问题的代码练习题目介绍思路pythonC++后话参考 题目介绍 给你一根长度为n的绳子,请把绳子剪成整数长的m段(m,n都是整数,n>1,m>1并且m≤n),每段绳子的长度记为k[1],…,k[m]。请问k[1]×…×k[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。 思路 其实就把切m段之前的所有可能的最大值都算出来,除了切1 2 3 刀需要人工计算,后面就累乘最大值就好。 python # encoding=utf原创 2020-07-21 15:22:25 · 528 阅读 · 0 评论