JZ12矩阵中的路径描述请设计一个函数,用来判断在一个n乘m的矩阵中是否存在一条包含某长度为len的字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。思路我们看到他是从矩形中的一个点开始往他的上下左右四个方向查找,这个点可以是矩形中的任何一个点,所以代码的大致轮廓我们应该能写出来,就是遍历矩形所有的点,然后从这个点开始往他的4个方向走,因为是二维数组,所以有两个for循环,代码如下publicbooleanhasPath(char[][]matrix,Stringwor
JZ16数值的整数次方描述实现函数doublePower(doublebase,intexponent),求base的exponent次方。注意:1.保证base和exponent不同时为0。2.不得使用库函数,同时不需要考虑大数问题3.有特殊判题,不用考虑小数点后面0的位数。方法1思路既然是求次方,那我们做不断累乘就可以了,重点是处理负的次方数具体做法:step1:先处理次方数为负数的情况,将底数化为分数解决。step2:遍历次方数的次数,不断累乘底数。代码publicdoublePower(doublebase,intexponent){if(exponent方法2思路计算幂运算,我们还可
JZ16数值的整数次方描述实现函数doublePower(doublebase,intexponent),求base的exponent次方。注意:1.保证base和exponent不同时为0。2.不得使用库函数,同时不需要考虑大数问题3.有特殊判题,不用考虑小数点后面0的位数。方法1思路既然是求次方,那我们做不断累乘就可以了,重点是处理负的次方数具体做法:step1:先处理次方数为负数的情况,将底数化为分数解决。step2:遍历次方数的次数,不断累乘底数。代码publicdoublePower(doublebase,intexponent){if(exponent方法2思路计算幂运算,我们还可
JZ23链表中环的入口结点描述给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。解析环很大在前面我们提到过快慢指针,判断是否有环。如果有环,在来找环的入口。如果没环直接返回null即可,我们假设是有环的,那么会有两种情况,一种是O型,一种是6型,其实原理都一样,这里主要看一下6字型的环,他会有两种情况,如果有环,那么快指针走过的路径就是图中a+b+c+b,慢指针走过的路径就是图中a+b,因为在相同的时间内,快指针走过的路径是慢指针的2倍,所以这里有a+b+c+b=2*(a+b),整理得到a=c在相遇的时候再使用两个指针,一个从链表起始点开始,一个从相遇点开始,每
JZ23链表中环的入口结点描述给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。解析环很大在前面我们提到过快慢指针,判断是否有环。如果有环,在来找环的入口。如果没环直接返回null即可,我们假设是有环的,那么会有两种情况,一种是O型,一种是6型,其实原理都一样,这里主要看一下6字型的环,他会有两种情况,如果有环,那么快指针走过的路径就是图中a+b+c+b,慢指针走过的路径就是图中a+b,因为在相同的时间内,快指针走过的路径是慢指针的2倍,所以这里有a+b+c+b=2*(a+b),整理得到a=c在相遇的时候再使用两个指针,一个从链表起始点开始,一个从相遇点开始,每
JZ38字符串的排列描述输入一个长度为n字符串,打印出该字符串中字符的所有排列,你可以以任意顺序返回这个字符串数组。例如输入字符串ABC,则输出由字符A,B,C所能排列出来的所有字符串ABC,ACB,BAC,BCA,CBA和CAB。题目主要信息给定一个长度为n的字符串,求其中所有字符的全排列字符串中可能有重复字符,打印顺序任意字符串中只包含大小写字母思路都是求元素的全排列,字符串与数组没有区别,一个是数字全排列,一个是字符全排列。为了便于去掉重复情况,还是参照数组全排列,优先考虑字典序排序,因为排序后重复的字符就会相邻,后序递归找起来也很方便使用临时变量去组装一个全排列情况:每当我们选取一个字
JZ38字符串的排列描述输入一个长度为n字符串,打印出该字符串中字符的所有排列,你可以以任意顺序返回这个字符串数组。例如输入字符串ABC,则输出由字符A,B,C所能排列出来的所有字符串ABC,ACB,BAC,BCA,CBA和CAB。题目主要信息给定一个长度为n的字符串,求其中所有字符的全排列字符串中可能有重复字符,打印顺序任意字符串中只包含大小写字母思路都是求元素的全排列,字符串与数组没有区别,一个是数字全排列,一个是字符全排列。为了便于去掉重复情况,还是参照数组全排列,优先考虑字典序排序,因为排序后重复的字符就会相邻,后序递归找起来也很方便使用临时变量去组装一个全排列情况:每当我们选取一个字
JZ67把字符串转换成整数(atoi)题目写一个函数StrToInt,实现把字符串转换成整数这个功能。不能使用atoi或者其他类似的库函数。传入的字符串可能有以下部分组成:1.若干空格2.(可选)一个符号字符('+'或'-')3.数字,字母,符号,空格组成的字符串表达式4.若干空格转换算法如下:1.去掉无用的前导空格2.第一个非空字符为+或者-号时,作为该整数的正负号,如果没有符号,默认为正数3.判断整数的有效部分:3.1确定符号位之后,与之后面尽可能多的连续数字组合起来成为有效整数数字,如果没有有效的整数部分,那么直接返回03.2将字符串前面的整数部分取出,后面可能会存在存在多余的字符(字母
JZ67把字符串转换成整数(atoi)题目写一个函数StrToInt,实现把字符串转换成整数这个功能。不能使用atoi或者其他类似的库函数。传入的字符串可能有以下部分组成:1.若干空格2.(可选)一个符号字符('+'或'-')3.数字,字母,符号,空格组成的字符串表达式4.若干空格转换算法如下:1.去掉无用的前导空格2.第一个非空字符为+或者-号时,作为该整数的正负号,如果没有符号,默认为正数3.判断整数的有效部分:3.1确定符号位之后,与之后面尽可能多的连续数字组合起来成为有效整数数字,如果没有有效的整数部分,那么直接返回03.2将字符串前面的整数部分取出,后面可能会存在存在多余的字符(字母
JZ74和为S的连续正数序列题目小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列?方法1枚举法思路算法实现从数字1开始枚举连续的数字,将其累加判断其是否等于目标,如果小于目标数则继续往后累加,如果大于目标数说明会超过,跳出,继续枚举下一个数字开始的情况(比如2,比如3),这样每次都取连续的序列,只有刚好累加和等于目标数才可以记