题目: 一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接.在每次预约服务之间要有休息时间,因此她不能接受相邻的预约.给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数. 注意:本题相对原题稍作改动 示例 1: 输入: [1,2,3,1] 输出: 4 解释: 选择 1 号预约和 3 号预约,总时长 = 1 + 3 = 4. 示例 2: 输入: [2,7,9,3,1] 输出: 12 解释: 选择 1 号预约. 3 号预约和 5 号预约,总时长 =…
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 动态规划 日期 题目地址:https://leetcode-cn.com/problems/the-masseuse-lcci/ 题目描述 一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接.在每次预约服务之间要有休息时间,因此她不能接受相邻的预约.给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数.…
leetcode面试题 17.16. 按摩师 又一道动态规划题目 动态规划的核心就是总结出一个通行的方程. 但是这道题似乎不太适合使用递归的方式. 所以使用for循环遍历数组. class Solution { public int massage(int[] nums) { if(nums.length==0)return 0; if (nums.length==1)return nums[0]; //动态规划,这个采用了分类讨论的思想 //[2,7,9,3,1]为例 //如果你在7的位置上.…
题目 输入整数数组 arr ,找出其中最小的 k 个数.例如,输入4.5.1.6.2.7.3.8这8个数字,则最小的4个数字是1.2.3.4. 示例 1: 输入:arr = [3,2,1], k = 2 输出:[1,2] 或者 [2,1] 示例 2: 输入:arr = [0,1,2,1], k = 1 输出:[0] 限制: 0 <= k <= arr.length <= 10000 0 <= arr[i] <= 10000 代码: class Solution: def ge…
目前CentOS/Red Hat (RHEL) 6.2官方自带的mysql版本为5.1,mysql5.5已经出来了. 相比mysql5.1,mysql5.5不仅在多个方面进行了改进: 性能上有了很大提升 默认存储引擎更改为InnoDB CPU多核处理性能提升 复制功能加强,新增半同步复制 增强表分区功能 等等 本文将指导你如何在CentOS/Red Hat (RHEL) 6.2及Fedora 17/16下安装最新版本的社区版本mysql. 如果您要升级mysql,请先备份好你的数据及配置文件再行…
面试题 17. 打印从 1 到最大的 n 位数 题目描述 题目:输入数字 n,按顺序打印出从 1 最大的 n 位十进制数.比如输入 3,则打印出 1.2.3 一直到最大的 3 位数即 999. 解答过程 样例 给出 n = 1, 返回[1,2,3,4,5,6,7,8,9]. 给出 n = 2, 返回[1,2,3,4,5,6,7,8,9,10,11,...,99]. 挑战 用递归完成,而非循环的方式. Java 实现 public class Solution { /** * @param n:…
// 面试题17:打印1到最大的n位数 // 题目:输入数字n,按顺序打印出从1最大的n位十进制数.比如输入3,则 // 打印出1.2.3一直到最大的3位数即999. 解题思路: 首先是一个大陷阱,n有多大?万一大到long long类型都盛不下,你要直接动手写,那写的再正确也是凉凉. 我们考虑到用字符来表示数字,然后把字符打印出来就行了. 书上巴拉巴拉说了一种很复杂的方法,代码量大也比较繁琐,感兴趣的去参考资料看就行了. 这里直接介绍第二种简单的方法,其实打印出从1最大的n位十进制数,实际就是…
Leetcode:面试题 04.03. 特定深度节点链表 Leetcode:面试题 04.03. 特定深度节点链表 先贴一下自己写过一个模板,按层数遍历: https://www.cnblogs.com/cell-coder/p/12344619.html 里面有这类题的模板 这道题就是这种类型的变种,只需要按题目意思改一下就ok 贴一下我的通过代码: /** * Definition for a binary tree node. * struct TreeNode { * int val;…
LeetCode 算法面试题汇总 算法面试题 https://leetcode-cn.com/problemset/algorithms/ https://leetcode-cn.com/problemset/database/ https://leetcode-cn.com/problemset/shell/ https://leetcode-cn.com/problemset/concurrency/ problemset 程序员面试经典(第 6 版) https://leetcode-cn…
Leetcode:面试题68 - II. 二叉树的最近公共祖先 Leetcode:面试题68 - II. 二叉树的最近公共祖先 Talk is cheap . Show me the code . /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), ri…
Leetcode:面试题55 - II. 平衡二叉树 Leetcode:面试题55 - II. 平衡二叉树 Talk is cheap . Show me the code . /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL)…
Leetcode:面试题 04.04. 检查平衡性 Leetcode:面试题 04.04. 检查平衡性 Talk is cheap . Show me the code . /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {}…
------------恢复内容开始------------ 题目描述 给定一个整数数组(有正数有负数),找出总和最大的连续数列,并返回总和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6. 解题方案一 (动态规划) 思路 假设数组名称为arr,结果数组为result 当只有一个数字的时候,最大的连续数列只能是这个数字,所以序号为0的位置,最大值为-2,则有result[0] = arr[0] 当有两个数字…
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 数学 日期 题目地址:https://leetcode-cn.com/problems/diving-board-lcci/ 题目描述 你正在使用一堆木板建造跳水板.有两种类型的木板,其中长度较短的木板长度为shorter,长度较长的木板长度为longer.你必须正好使用k块木板.编写一个方法,生成跳水板所有可能的长度. 返回的长度需要从小到大排列.…
题目地址 实现一个数列的动态添加和查询中位数. 复杂点的话应该可以写个平衡树什么的,然后查询第k大,还可以删除数字. 简单点的话显然可以维护两个堆,一个大顶堆一个小顶堆,而且大顶堆最多比小顶堆多一个,这样查询就直接取大顶堆top元素或者两个堆top元素平均值. 添加的话,如果小于大顶堆top,就加入大顶堆,否则加入小顶堆,然后再根据size大小关系调整一下,因为最多只要调整一次,所以复杂度nlogn是对的. code class MedianFinder { public: /** initia…
题目描述 思路分析 这题回溯,先想出它的空间解是什么,这里空间解,其实就是给的原字符串到结束字符串中间的变形过程,那么就可以容易的画出一个解空间树,用深度搜索进行搜索, 剪枝后,进入下一个维度,再进行搜索,最后到达出口即得到结束字符串时,将结果返回,放下脚本 class Solution { public: bool judge(string& a,string& b) { if(a.size()!=b.size()) return false; int count=0; for(int…
题目:面试题62. 圆圈中最后剩下的数字 这题很有意思,也很巧妙,故记录下来. 官方题解思路,是约瑟夫环的数学解法: 我们将上述问题建模为函数 f(n, m),该函数的返回值为最终留下的元素的序号. 首先,长度为n的序列会先删除第m % n个元素,然后剩下一个长度为n - 1的序列.那么,我们可以递归地求解f(n - 1, m),就可以知道对于剩下的n - 1个元素,最终会留下第几个元素,我们设答案为x = f(n - 1, m). 由于我们删除了第m % n个元素,将序列的长度变为n - 1.…
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 两次翻转 日期 题目地址:https://leetcode-cn.com/problems/longest-happy-string/ 题目描述 给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节.请你设计一种算法,将图像旋转 90 度. 不占用额外内存空间能否做到? 示例 1: 给定 matrix = [ [1,2,3], [4,…
PS:这也是一道出镜率极高的面试题,我相信很多童鞋都会很眼熟,就像于千万人之中遇见不期而遇的人,没有别的话可说,唯有轻轻地问一声:“哦,原来你也在这里? ” 一.题目:合并两个排序的链表 题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的.例如输入下图中的链表1和链表2,则合并之后的升序链表如链表3所示. 链表结点定义如下,使用C#描述: public class Node { public int Data { get; set; } // 指向后一个节点 pu…
.NET面试题系列目录 这篇文章主要是各个百科中的一些摘抄,简述了进程和线程的来源,为什么出现了进程和线程. 操作系统层面中进程和线程的实现 操作系统发展史 直到20世纪50年代中期,还没出现操作系统,计算机工作采用手工操作方式.程序员将对应于程序和数据的已穿孔未的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行:计算完毕,打印机输出计算结果:用户取走结果并卸下纸带(或卡片)后,才让下一个用户上机. 手工操作方式的两个特点: (1)用户独…
开篇 通常的匹配分为两类,一种是正则表达式匹配,pattern包含一些关键字,比如'*'的用法是紧跟在pattern的某个字符后,表示这个字符可以出现任意多次(包括0次). 另一种是通配符匹配,我们在操作系统里搜索文件的时候,用的就是这种匹配.比如 "*.pdf",'*'在这里就不再代表次数,而是通配符,可以匹配任意长度的任意字符组成的串.所以"*.pdf"表示寻找所有的pdf文件. 在算法题中,往往也会有类似的模拟匹配题,当然考虑到当场实现的时间,会减少通配符数量…
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11209807.html 一.1道网易c++的面试题 我当时第一时间的解答方案 #include <iostream> #include <vector> using namespace std; int main() { const int Wi = 3840; const int Hi = 2160; int N,M; int temp; int x,y,w,h; int x…
目录 VGGNet网络结构 论文中还讨论了其他结构 参考资料 2014年,牛津大学计算机视觉组(Visual Geometry Group)和Google DeepMind公司的研究员一起研发出了新的深度卷积神经网络:VGGNet,并取得了ILSVRC2014比赛分类项目的第二名(第一名是GoogLeNet,也是同年提出的)和定位项目的第一名. VGGNet探索了卷积神经网络的深度与其性能之间的关系,成功地构筑了16~19层深的卷积神经网络,证明了增加网络的深度能够在一定程度上影响网络最终的性能…
题目 给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A. 例如,如果这个列表是 ["time", "me", "bell"],我们就可以将其表示为 S = "time#bell#" 和 indexes = [0, 2, 5]. 对于每一个索引,我们可以通过从字符串 S 中索引的位置开始读取字符串,直到 "#" 结束,来恢复我们之前的单词列表. 那么成功对给定单词列表进行编码的最小…
题目 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内所有的牌上都写着相同的整数. 仅当你可选的 X >= 2 时返回 true. 示例 1: 输入:[1,2,3,4,4,3,2,1] 输出:true 解释:可行的分组是 [1,1],[2,2],[3,3],[4,4] 示例 2: 输入:[1,1,1,2,2,2,3,3] 输出:false 解释:没有满足要求的分组. 示例 3: 输入:[1] 输出:…
题目 三维形体的表面积 在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上. 请你返回最终形体的表面积. 示例 1: 输入:[[2]] 输出:10 示例 2: 输入:[[1,2],[3,4]] 输出:34 示例 3: 输入:[[1,0],[0,2]] 输出:16 示例 4: 输入:[[1,1,1],[1,0,1],[1,1,1]] 输出:32 示例 5: 输入:[[2,2,2],[2,…
836. 矩形重叠 矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标. 如果相交的面积为正,则称两矩形重叠.需要明确的是,只在角或边接触的两个矩形不构成重叠. 给出两个矩形,判断它们是否重叠并返回结果. 示例 1: 输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3] 输出:true 示例 2: 输入:rec1 = [0,0,1,1], rec2 = [1,0,2,1] 输出:false 提示…
题目描述 面试题57 - II. 和为s的连续正数序列 难度简单37收藏分享切换为英文关注反馈 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数). 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列. 示例 1: 输入:target = 9 输出:[[2,3,4],[4,5]] 示例 2: 输入:target = 15 输出:[[1,2,3,4,5],[4,5,6],[7,8]] 限制: 1 <= target <= 10^5 方法一: 0…
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 BFS 日期 题目地址:https://leetcode-cn.com/problems/ji-qi-ren-de-yun-dong-fan-wei-lcof/ 题目描述 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] .一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左.右.上.下移动一格(不能移动到方格外),也…
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 约瑟夫环 日期 题目地址:https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/ 题目描述 0,1,,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的最后一个数字. 例如,0.1.2.3.4这5个…