摘要: 目标: 给出一个字符串及数字K,字符串中的前K个字符中的一个可以取出放到队尾,求任意次操作后,字典序最小的字符串。 思路: 分两种情形,当K = 1时,因为每次只能移动队头的字符,所以要计算哪一次操作后,字符串字典序最小。而当K > 1时,前K个字符都可以移动,理论上字符串任意的组合,都可以通过操作 阅读全文
posted @ 2018-11-21 17:28 leo_lee 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 目标: 给出一个数字,将各位上的数字相加,如果和为多个数字,就重新计算这些数字的和,直到和为一个数字。 思路: 利用递归的思想,直到和为一个数字。 代码: 阅读全文
posted @ 2018-11-21 14:39 leo_lee 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 目标: 输入一个多叉树的结构,后续遍历输出每个节点的值 思路: 使用递归,按后序逻辑,先遍历所有子节点进行递归,再将当前节点的值输出 代码: 阅读全文
posted @ 2018-11-12 14:38 leo_lee 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 目的: 给出一个已打乱的可以组成英文数字的字符串,输出里面包含什么数字,按降序输出 思路: 利用数学统计学与方程求解: zero 0one 1two 2three 3four 4five 5six 6seven 7eight 8nine 9 e 0, 1, 3, 5, 7, 8, 9f 4, 5g 阅读全文
posted @ 2018-11-08 11:33 leo_lee 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 目的: 给出一组数字,判断该数组中是否含有132模式的串,132模式,即存在i,j,k,均为数组的下标,且i < j < k,而对应的数字Ai,Aj,Ak,有关系Ai < Ak < Aj。 思路: 因为存在i < j < k,这一关系,所以我们从后开始遍历数组,就能保证这个条件成立。 我们用一个变量 阅读全文
posted @ 2018-11-07 17:37 leo_lee 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 目标: 输入一个数字,输出它的二进制的反码代表的十进制数 思路: 一位一位计算输入数字的二进制码,然后累加该位的反码。 代码: 阅读全文
posted @ 2018-11-06 23:34 leo_lee 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 目标: 给出节点数,输出可以生成多少颗二叉搜索树的数量。 主要思路: 主要考察对搜索二叉树的理解,考虑分状况,当选择最小的节点或最大节点当树节点,则剩下的情况就等于F(n - 1)。当选择中间节点,则为F(1) * F(n - 2) + F(2) * F(n - 3) + ... + F(n-3) 阅读全文
posted @ 2018-11-05 16:29 leo_lee 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 目标: 给出一组字符串,找出里面由字符串组中的字符串逐渐增加字母的最长的单词,且这个单词是可能组成的单词中字典序最小的。 思路: 基本思路是,先将字符串组中的每个字符串按字典序排序,我们使用一个temp字符串用来做暂时的变量来进行比较,而一个best字符串用来记录当前找到最长的字符串。 然后从头开始 阅读全文
posted @ 2018-11-05 15:43 leo_lee 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 目标: 给出一个数组和一个k大小的窗口,窗口从头开始,每次移动一个元素,直到到达数组尾,给出每次窗口的最大值。思考如何在线性时间内完成。 主要思路: 一开始,我实现的是,遍历窗口,移动,每次都找出该窗口的最大值,然后输出。这种方法的时间复杂度为O(nk),理论上k是一个定值,所以可以看作是O(n), 阅读全文
posted @ 2018-10-31 15:38 leo_lee 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 目标: 给出一个链表的head,和n,删除该链表倒数第n个节点,并返回head。尽量使用一个循环实现。 思路: 用一个指针index来遍历的链表,同时用一个整形count记录搜索节点的迭代次数,直到与题目输入的n相等。 这时候,用一个指针before_remove来记录应该被删的节点的前一个节点。 阅读全文
posted @ 2018-10-30 21:53 leo_lee 阅读(142) 评论(0) 推荐(0) 编辑