
编程题
codebrid
公众号:NLP_codebrid | NLP笔记屋
展开
-
面经 | 记录秋招遇到的概率题与智力题(附答案)
概率题与智力题对于秋招选手是一种怎么样的存在? 概率论是计算机科学非常重要的基础学科之一,智力题是概率题的另一种形式,概率题也是在程序员求职过程中经常遇到的问题。下面稍作整理,供大家参考。 Q:49个人中至少几个人生日是同一月? A:5 Q:一个聚会上,每两个人只握一次手,一共握了45次,问一共几个人 A:C(n, n-1)/2 = 45 -> n = 10 ...原创 2019-10-12 19:56:47 · 1269 阅读 · 0 评论 -
【编程题】腾讯2017秋招技术类笔试题
四道编程题,120min,python实现, 第一题 假定一种编码的编码范围是a ~ y的25个字母,从1位到4位的编码,如果我们把该编码按字典序排序,形成一个数组如下: a, aa, aaa, aaaa, aaab, aaac, … …, b, ba, baa, baaa, baab, baac … …, yyyw, yyyx, yyyy 其中a的Index为0,aa的Index为1,aaa...原创 2019-08-31 17:22:55 · 285 阅读 · 0 评论 -
【编程题】【2019字节跳动技术类笔试】
一、并查集 题目:豆油瓶是直系和间接朋友组成的群体,也可以自成一个豆油瓶,输入用户之间的互动次数矩阵,大于等于3即为是朋友,求豆油瓶的个数 思路:初始化每个用户的父节点为自己,nn遍历每个用户对ab,如果是朋友且父节点不同,则把a的最上父节点的父节点更新为b的最上父节点,使他们拥有相同的最上父节点;构造结束后,遍历每个用户,若用户的最上父节点是自己,则朋友圈数加一; leetcode547 ...原创 2019-08-26 10:16:52 · 820 阅读 · 0 评论 -
【编程题】【2019腾讯技术类第一次笔试】
一、前缀和/快慢指针,暴力法会超时 快慢指针:快指针先走k个 然后走一遍 O(n) 走的时候保存最小值 就是答案 二、回溯/BFS 解题思路: 在只走‘.’的情况下把终点的冰踩碎 输入n*m的矩阵,以及走的开始和终点位置 在开始点,上下左右找‘.’,有就走,并把改点设置为‘X’,走到终点时候,若终点是‘X’则成功。 其他情况都失败。 三、最小生成树 构造一个通讯网络,...原创 2019-08-18 11:13:03 · 1315 阅读 · 0 评论 -
【编程题】杨氏矩阵
题目: 给定n×n的实数矩阵,每行和每列都是递增的,求这n^2个数的中位数。 方法一:与求第K小的数相同的方法,维护一个大小为K的大顶堆 O(nlogK) 方法二:http://zhiqiang.org/cs/median-algorithm-of-ordered-matrix.html 题目: 如果给定1~n这n个数,可以构成多少个杨氏矩阵呢? https://www.cn...原创 2019-08-17 21:05:07 · 212 阅读 · 0 评论 -
【编程题】【leetcode28】KMP
【难度:easy】 【时间复杂度:O(m + n)】 class Solution(object): def strStr(self, haystack, needle): """ :type haystack: str :type needle: str :rtype: int """ ...原创 2019-08-17 20:23:34 · 227 阅读 · 0 评论 -
【编程题】【未知出处】输入两个日期计算两个日期相差的天数
【难度:easy】 # 输入为 # y1 # y2 # m1 # m2 # d1 # d2 days1 = [31,29,31,30,31,30,31,31,30,31,30,31] days2 = [31,28,31,30,31,30,31,31,30,31,30,31] def countday(year): if isday1(year): return sum(days1)...原创 2019-08-16 15:05:35 · 1659 阅读 · 0 评论 -
【编程题】【未知出处】01矩阵里找面积最大的全1矩阵
相似题目:01矩阵里找面积最大的全1方矩阵 解法:动态规划 if num[i][j] == 0: dp[i][j] = 0 else: dp[i][j] = max(dp[i-1][j],dp[i-1][j-1],dp[i-1][j-1]) + 1 本题:01矩阵里找面积最大的全1矩阵,不再限制于方阵 解法:动态规划 思路:转换成找面积最大的直方图问题,时间O...原创 2019-08-20 16:16:16 · 2875 阅读 · 0 评论 -
【编程题】【leetcode】股票问题 - 学一套走天下
知识点:数组操作 类似题目: 901 股票价格跨度 3 31.4% 中等 121 买卖股票的最佳时机 46 50.4% 简单 122 买卖股票的最佳时机 II 43 55.0% 简单 123 买卖股票的最佳时机 III 17 39.0% ...原创 2019-08-18 17:29:39 · 712 阅读 · 0 评论 -
【书籍记录】《编程之法》
这本书记录了一些算法岗面试常见的编程题 因为博主本人记忆力较差,因此将书中比较好的部分或面试过程中真实遇到过的题目再此标记一下 直接使用目录形式进行重点标记 1.字符串 1.3.全排列:回溯递归(时间O(n!)空间O(n!)) 1.5.回文判断:双指针(时间O(n)空间O(1)) 扩展:单链表(快慢指针)栈(逆置串,判断两个串完全相同) 1.6.最长回文子串(遍历每个中心...原创 2019-08-06 10:22:34 · 204 阅读 · 0 评论 -
【编程题】【未知出处】克隆排队
题目来自于https://blog.youkuaiyun.com/song2016/article/details/81187109 以下记录想法与python核心代码 题目1: Alice、Bob、Cathy、Dave四个人排队喝可乐,喝完一个人变两个,接着继续到队尾排队,问第N个人喝可乐的人是谁 如:N=8: ABCDAABB,第八个人是B, 分析: i = 0 people =...原创 2019-07-28 11:52:10 · 179 阅读 · 0 评论 -
【编程题】【leetcode】排列组合 - 学一套走天下
知识点:全排列以及各种要求的排列组合 类似题目: 39.组合总和 40. 组合总和 II 46. 全排列 47. 全排列 II 78. 子集 90. 子集 II 以leetcode90为例,python 题目:给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: [1,2,2] 输出: [ ...原创 2019-08-05 13:15:38 · 921 阅读 · 0 评论 -
【编程题】【未知出处】二叉树的重构
给定二叉树的两种遍历方式,我们可以很容易的重构二叉树 这篇文章的图解很清楚https://blog.youkuaiyun.com/sun_lm/article/details/82888980 现在的题目是: 只给定前序遍历,如何重构二叉树,例如给定124xxx3xx,X表示None class Node(): def __init__(self, value, left=None,...原创 2019-07-27 11:34:37 · 203 阅读 · 0 评论 -
【编程题】【未知出处】字典序
字典序一般会出两种题目: 一、给一个字典序排列的数组,查找第k个元素 leetocde440:https://leetcode-cn.com/problems/k-th-smallest-in-lexicographical-order/submissions/ 输入n: 13,k: 2;输出10;解释:字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6...原创 2019-08-04 22:57:24 · 183 阅读 · 0 评论 -
【编程题】【未知出处】任务排序 / 拓扑排序
知识点:拓扑排序 一、只要求满足偏序的拓扑排序 输入:几个偏序 n=5 # 节点个数 m=4 # 偏序个数 12 23 13 15 输出:一种排序方式或不能排序 1 4 2 5 3 思路:存储输入的拓扑关系,定义数组记录每一个点状态。对状态显示还未被遍历的点进行DFS(),遍历该点以及与该点有直接拓扑关系的点。在DFS过程中将元素压入存放拓扑结果的vector结构ans。 以下代...原创 2019-08-04 17:22:02 · 290 阅读 · 0 评论 -
【编程题】【牛客网】二进制中1的个数
剑指offer15题 由于除法效率比移位运算慢得多,所以本文使用移位运算符>>代替除以2的操作。 一、整数与1做与运算,每次右移 二、整数与flag做与运算,flag每次左移 三、整数与(整数-1)做与运算,直至与运算结果为0 一、该方法可以很好的处理正数,但在处理负数时,右移操作之后需要将首位置一,这样会导致最后生成0xFFFFFFFF,陷入死循环,所以推荐方法...原创 2019-07-22 10:57:10 · 163 阅读 · 0 评论 -
【编程题】【leetcode145】打印二叉树(非递归)
递归法打印二叉树是极其简单的 而非递归的方式呢? 要求非递归的实现二叉树的打印时,要用到栈来实现迭代 一、先序:根左右; 二、中序:左根右; 三、后序:左右根; 一、先序:根左右:入栈顺序为右左-出栈时每pop一个,就把他的右左入栈 1 # 先序打印二叉树(非递归) 2 def preOrderTravese(node): 3stack = [node] ...原创 2019-07-22 10:22:43 · 340 阅读 · 0 评论 -
【编程题】【未知出处】数组段的完全覆盖
题目: 单个线段[2,6]可称为完全覆盖[4,6],现有两组线段,判断A组能否完全覆盖B组 例如: [[1, 3], [2, 6]] [[1, 4], [4, 5]] True [[1, 2], [4, 7]] [[2, 5], [6, 7]] False 相关题目:【leetcode56:合并区间】 方法一: ...原创 2019-07-25 22:47:04 · 531 阅读 · 1 评论