面试题
芋圆萌萌哒
这个作者很懒,什么都没留下…
展开
-
【码不停题3.6】回文对
给定一组唯一的单词, 找出所有不同 的索引对(i, j),使得列表中的两个单词, words[i] + words[j] ,可拼接成回文串。 示例 1: 输入: [“abcd”,“dcba”,“lls”,“s”,“sssll”] 输出: [[0,1],[1,0],[3,2],[2,4]] 解释: 可拼接成的回文串为 [“dcbaabcd”,“abcddcba”,“slls”,“llssssll”]...原创 2019-03-06 18:54:47 · 250 阅读 · 0 评论 -
【码不停题3.17】二叉树的前序后序遍历【递归非递归】
前序 非递归 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; ...原创 2019-03-18 14:46:24 · 149 阅读 · 0 评论 -
【码不停题3.17】Golang尝试:字母异位词分组和先序遍历构造二叉树
1. 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 示例: 输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”], 输出: [ [“ate”,“eat”,“tea”], [“nat”,“tan”], [“bat”] ] 说明: 所有输入均为小写字母。 不考虑答案输出的顺序。 import ( "sort"; ...原创 2019-03-17 20:59:41 · 284 阅读 · 0 评论 -
【码不停题3.8】反转字符串 II
给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符,则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符,则反转前 k 个字符,并将剩余的字符保持原样。 示例: 输入: s = “abcdefg”, k = 2 输出: “bacdfeg” 要求: 该字符串只包含小写的英文字母。 给定字符串的长度和 k 在[1, 1...原创 2019-03-08 13:01:26 · 171 阅读 · 0 评论 -
【码不停题3.20】课程表|||
这里有 n 门不同的在线课程,他们按从 1 到 n 编号。每一门课程有一定的持续上课时间(课程时间)t 以及关闭时间第 d 天。一门课要持续学习 t 天直到第 d 天时要完成,你将会从第 1 天开始。 给出 n 个在线课程用 (t, d) 对表示。你的任务是找出最多可以修几门课。 示例: 输入: [[100, 200], [200, 1300], [1000, 1250], [2000, 3200...原创 2019-03-20 19:37:01 · 311 阅读 · 0 评论 -
【码不停题3.15】被包围的区域
给定一个二维的矩阵,包含 ‘X’ 和 ‘O’(字母 O)。 找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。 示例: X X X X X O O X X X O X X O X X 运行你的函数后,矩阵变为: X X X X X X X X X X X X X O X X 解释: 被围绕的区间不会存在于边界上,换句话说,任何边界上的 ‘O’ 都不会被填充为 ‘X’。...原创 2019-03-15 18:45:57 · 259 阅读 · 0 评论 -
【码不停题3.15】先序遍历构造二叉树
返回与给定先序遍历 preorder 相匹配的二叉搜索树(binary search tree)的根结点。 输入:[8,5,1,7,10,12] 输出:[8,5,10,1,7,null,12] var bstFromPreorder = function(preorder) { if (preorder.length == 0) return null let val = preo...原创 2019-03-15 18:29:36 · 236 阅读 · 0 评论 -
【码不停题3.7】每一字符出现次数都不少于 k的最长子串 T
找到给定字符串(由小写字符组成)中的最长子串 T , 要求 T 中的每一字符出现次数都不少于 k 。输出 T 的长度。 示例 1: 输入: s = “aaabb”, k = 3 输出: 3 最长子串为 “aaa” ,其中 ‘a’ 重复了 3 次。 示例 2: 输入: s = “ababbc”, k = 2 输出: 5 最长子串为 “ababb” ,其中 ‘a’ 重复了 2 次, ‘b’ 重复了 3...原创 2019-03-07 15:28:40 · 1018 阅读 · 0 评论 -
【码不停题3.7】只出现一次的数字(简单)众数
1. 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 class Solution { public: set<int> s; int s...原创 2019-03-07 13:36:34 · 391 阅读 · 0 评论 -
【码不停题3.6】比特位计数
给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。 示例 1: 输入: 2 输出: [0,1,1] 示例 2: 输入: 5 输出: [0,1,1,2,1,2] 进阶: 给出时间复杂度为O(n*sizeof(integer))的解答非常容易。但你可以在线性时间O(n)内用一趟扫描做到吗? 要求算法的空间复杂度为O(n)...原创 2019-03-06 21:04:07 · 258 阅读 · 0 评论 -
【码不停题3.6】打家劫舍
在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。 计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。 示例 1: 输入: [3,2,3,n...原创 2019-03-06 20:39:16 · 334 阅读 · 0 评论 -
【码不停题3.18】LRU缓存机制实现 双向链表+哈希map
运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。 获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。 写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最近最少使用的数...原创 2019-03-18 19:36:21 · 245 阅读 · 0 评论