随笔分类 -  数据结构与算法

摘要:1、两数和问题 """ def solution(arr,length,sum): dic = {} for i in range(length): t = sum arr[i] if arr[i] in dic: return "{} {}".format(dic[arr[i]],i) else: 阅读全文
posted @ 2019-10-17 20:26 长安223 阅读(351) 评论(0) 推荐(0)
摘要:1、美团 骑士送餐 分割最多子串 输出每个子串长度 """ def solution(s): length = len(s) if length li[i][1]: i+= 1 else: if r 阅读全文
posted @ 2019-10-17 20:25 长安223 阅读(440) 评论(0) 推荐(0)
摘要:1、字节跳动水龙头接水问题,至少需要多少时间 """ import heapq n, m = list(map(int, input().split(' '))) arr = list(map(int, input().split(' '))) min_heap = arr[:m] heapq.he 阅读全文
posted @ 2019-10-17 20:22 长安223 阅读(359) 评论(0) 推荐(0)
摘要:题目: 能被1~10同时整除的最小整数是2520,问能被1~20同时整除的最小整数是多少? 友情提示:看最佳答案直接翻到最后。 拿到题时自己的思考如下: 先将1~20分一半,只看11~20,这个数既然能整除11~20,则必然能整除1~10。现在将11~20这十个数中能被2,3,5整除的数循环除2,3 阅读全文
posted @ 2019-07-13 21:28 长安223 阅读(1240) 评论(0) 推荐(0)
摘要:实在太菜了,前段时间刚刚做过迷宫问题,也做过N皇后问题。今天笔试做这个题,虽然明白是迷宫问题加个回溯就可以了,但愣是没做出来。太菜了,下来又花了点时间才做出来。 问题:一个(X,Y)的迷宫,入口左上角,出口右下角,求出走出迷宫的路径的条数。 算法: def solution(map, row, co 阅读全文
posted @ 2019-06-06 23:04 长安223 阅读(272) 评论(0) 推荐(0)
摘要:笔试的时候没做出来,就顺手截图了。 虽然知道要用动态规划做,但我一直就不太懂动态规划。笔试完又花了2小时把它做出来了。也不知道性能怎么样,但还好做出来了。 def solution(n, toltal_money, until_price, until_hot): 二维数组,每一行代表0到total 阅读全文
posted @ 2019-06-04 23:29 长安223 阅读(1533) 评论(0) 推荐(0)
摘要:数据结构中常见的问题,最近复习到了,用python做一遍。 n = 4时: n = 8时: 阅读全文
posted @ 2019-05-28 21:37 长安223 阅读(3924) 评论(0) 推荐(0)
摘要:参考了一个数的二进制形式有多少个1的思路。如果一个数是2的整数次方,那这个数的二进制形式中只有一个1,其余全为0 阅读全文
posted @ 2019-05-28 20:48 长安223 阅读(217) 评论(0) 推荐(0)
摘要:题目: 剑指offer的思路,顿时觉得极妙。删除节点node1,先把其下一个节点node2的内容复制到node1这个节点,然后把节点node1的指针指向node2的下一个节点,最后删除节点node2。 解题: 阅读全文
posted @ 2019-05-28 20:37 长安223 阅读(149) 评论(0) 推荐(0)
摘要:题目: 参考大数运算的方法。考虑到位数会很大,所以采用字符串的形式解决。对输入的n,创建一个长度为n的数组,分别存放打印时数字的每一位,高位用0补足。为方便使用字符串打印结果,所以数组中存的都是字符型式的0 9 解法: def print_one_max_number(n): if n 阅读全文
posted @ 2019-05-28 20:10 长安223 阅读(268) 评论(0) 推荐(0)
摘要:题目: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 拙见: 没什么难度,想通了栈和队列的特点即可,还有一种就是用两个队列实现栈,也比较简单。 阅读全文
posted @ 2019-05-11 13:59 长安223 阅读(531) 评论(0) 推荐(0)
摘要:题目: 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 拙见: 用到了一点逻辑运算的小技巧,正数很好解决,负数不能直接用正数的方法解决,负数的补码中1的个数等于整数长度减去补码中0的个数,那么把负数取反,原负数中0的个数就等于取反后数中的1的个数,这是就和整数采用一样的方法了。 c 阅读全文
posted @ 2019-05-11 13:55 长安223 阅读(255) 评论(0) 推荐(0)
摘要:题目: 输入一个链表,输出该链表中倒数第k个结点。 拙见: 题不难,双指针,考察代码的鲁棒性。 阅读全文
posted @ 2019-05-11 13:48 长安223 阅读(136) 评论(0) 推荐(0)
摘要:题目: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 拙见: 阅读全文
posted @ 2019-05-11 13:45 长安223 阅读(352) 评论(0) 推荐(0)
摘要:题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这 阅读全文
posted @ 2019-05-07 21:30 长安223 阅读(932) 评论(0) 推荐(0)