算法
文章平均质量分 51
06le
这个作者很懒,什么都没留下…
展开
-
从矩阵中路径题目思考回溯题目思路
最近做《剑指offer》矩阵中路径的题目,是一道典型的回溯法题目。 过程中犯了一些错误,记录一下。1.迭代过程中对访问每个节点函数功能没想清除,违反了单一职责元素。2.没利用或运算符短路求值的特性导致进行了多余运算下面是例题以及改进过程题目给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一原创 2022-03-20 15:36:00 · 247 阅读 · 0 评论 -
求数字x第n位数字
两种方法:利用除法截去数字右边多余位数,取余截取数字最右一位数字举例:数字12345有5位,如果想取第3位数字,12345/pow(10,5-3)得到123,123%10得到最右一位数字3.int findNthDigit(int number, int n){ int digit = 1; //数位 int temp = number; while (temp / 10 != 0) { temp /= 10; ++digit; } return (number/ (int)原创 2022-03-05 17:20:25 · 132 阅读 · 0 评论 -
剑指offer23:链表中环的入口节点
链表中环的入口节点题目思路代码题目给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。思路确认是否有环设置两个指针,快指针一次走两步,慢指针一次走一步,如果某个时刻两指针指向相同位置,则有环,如果当快指针下一个节点为nullptr原创 2021-07-30 21:09:41 · 76 阅读 · 0 评论 -
剑指offer面试题17:打印从1到最大的n位数
打印从1到最大的n位数题目思路非递归版本需要用到的知识点犯的错误递归版本题目输入数字n,顺序打印从1到最大的n位十进制数,如输入3,打印出1,2,3一直到最大的三位数999思路n位十进制有可能大到无法保存在算术类型中,所以要一个容器来存储数字。在字符串上存储数字并递增数字。见increment函数打印字符串中的数字。见printnumber函数。非递归版本bool increment(string& number){ int nlength = number.s原创 2021-07-21 13:19:10 · 65 阅读 · 0 评论