代码改变世界

随笔分类 -  笔试面试题

数组去重

2020-02-16 18:02 by jiayayao, 192 阅读, 收藏, 编辑
摘要: 方法1 unique函数: std::unique()函数将重复的元素放到vector的尾部,并且返回第一个重复元素的迭代器。 所以通过以下方法可以去重: vec.erase(unique(vec.begin(), vec.end()), vec.end()); 方法2 set属性: 使用set属性 阅读全文

LeetCode 15. 三数之和

2020-02-16 16:31 by jiayayao, 174 阅读, 收藏, 编辑
摘要: 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例: 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组集合 阅读全文

LeetCode 14. 最长公共前缀

2020-02-16 15:50 by jiayayao, 132 阅读, 收藏, 编辑
摘要: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: ["flower","flow","flight"]输出: "fl"示例 2: 输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。 Solutio 阅读全文

LeetCode 12. 整数转罗马数字

2020-02-16 14:54 by jiayayao, 123 阅读, 收藏, 编辑
摘要: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。 阅读全文

LeetCode 11. 盛最多水的容器

2020-02-16 14:39 by jiayayao, 142 阅读, 收藏, 编辑
摘要: 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。 阅读全文

LeetCode 10. 正则表达式匹配

2020-02-09 23:23 by jiayayao, 154 阅读, 收藏, 编辑
摘要: 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。 '.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 说明: s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 阅读全文

LeetCode 9. 回文数

2020-02-09 23:00 by jiayayao, 164 阅读, 收藏, 编辑
摘要: 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121输出: true示例 2: 输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3: 输入: 10输出: 阅读全文

LeetCode 8. 字符串转换整数 (atoi)

2020-02-09 22:31 by jiayayao, 224 阅读, 收藏, 编辑
摘要: 请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的 阅读全文

LeetCode 7. 整数反转

2020-02-09 21:55 by jiayayao, 145 阅读, 收藏, 编辑
摘要: 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 输入: 123输出: 321 示例 2: 输入: -123输出: -321示例 3: 输入: 120输出: 21注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1 阅读全文

LeetCode 6. Z 字形变换

2020-02-09 21:35 by jiayayao, 133 阅读, 收藏, 编辑
摘要: 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOES 阅读全文

贪心算法

2020-01-30 11:51 by jiayayao, 331 阅读, 收藏, 编辑
摘要: 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。 贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态 阅读全文

LeetCode 5. 最长回文子串

2020-01-18 22:53 by jiayayao, 121 阅读, 收藏, 编辑
摘要: 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2: 输入: "cbbd"输出: "bb" Solutions: 动态规划 申请一个二维数组dp[][],dp[i 阅读全文

LeetCode 4. 寻找两个有序数组的中位数

2020-01-18 22:00 by jiayayao, 133 阅读, 收藏, 编辑
摘要: 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例 1: nums1 = [1, 3]nums2 = [2] 则中位数是 2.0示 阅读全文

动态规划

2020-01-18 19:00 by jiayayao, 333 阅读, 收藏, 编辑
摘要: 一、概念 动态规划(Dynamic Programming),是一种分阶段求解决策问题的数学思想。那么如何更简单的理解动态规划的核心思想呢? How should I explain dynamic programming to a 4-year-old? *Writes down "1+1+1+1 阅读全文

LeetCode 3. 无重复字符的最长子串

2020-01-17 18:40 by jiayayao, 166 阅读, 收藏, 编辑
摘要: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2: 输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3: 阅读全文

LeetCode 2. 两数相加

2020-01-17 18:23 by jiayayao, 245 阅读, 收藏, 编辑
摘要: 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 阅读全文

LeetCode 1. 两数之和

2020-01-17 12:29 by jiayayao, 170 阅读, 收藏, 编辑
摘要: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 num 阅读全文

求二叉树中叶子节点的个数

2017-07-18 22:53 by jiayayao, 953 阅读, 收藏, 编辑
摘要: 思路比较简单,递归算法。如果一个节点既没有左孩子,也没有右孩子,则该节点为叶子节点。 阅读全文

判断二叉树是不是平衡二叉树

2017-07-18 22:47 by jiayayao, 1867 阅读, 收藏, 编辑
摘要: 平衡二叉树定义: 平衡二叉树又称AVL树。它或者是颗空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。若将二叉树节点的平衡因子BF定义为该节点的左子树的深度减去它的右子树的深度,则平衡二叉树上所有节点的平衡因子只可能为-1,0,1.只要二 阅读全文

二叉树的镜像

2017-07-18 21:54 by jiayayao, 168 阅读, 收藏, 编辑
摘要: 将现有二叉树左右翻转过来,即实现二叉树的镜像。思路比较清晰,输入root,翻转其左右孩子,然后查看其左右孩子是否为空,不为空的话,继续翻转。代码如下: 阅读全文
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏