剑指Offer和Leetcode
Evillla
努力做一个可爱的程序员
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
剑指Offer:判断一棵树是不是平衡二叉树
读完题目,首先想的居然是,平衡二叉树的定义是什么…于是百度:平衡二叉树(Balanced Binary Tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。接着是平衡二叉树的特性:AVL算法很好的解决了二叉查找树退化成链表的问题,把插入,查找,删除的时间复杂度最好情况和最坏情况都维持在O(...原创 2019-04-03 21:35:40 · 679 阅读 · 0 评论 -
Leetcode 2. Add Two Numbers
You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return i...原创 2019-04-18 21:38:50 · 200 阅读 · 0 评论 -
Leetcode 3. Longest Substring Without Repeating Characters
Given a string, find the length of the longest substring without repeating characters.Example 1:Input: “abcabcbb”Output: 3Explanation: The answer is “abc”, with the length of 3.Example 2:Input: ...原创 2019-04-18 22:20:24 · 171 阅读 · 0 评论 -
Leetcode 4 : Median of Two Sorted Arrays
There are two sorted arrays nums1 and nums2 of size m and n respectively.Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).You may assume nums1 and num...原创 2019-04-19 15:11:59 · 194 阅读 · 0 评论 -
LeetCode 5. Longest Palindromic Substring
Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.Example 1:Input: “babad” Output: “bab” Note: “aba” is also a valid answer.Example...原创 2019-04-20 11:36:17 · 164 阅读 · 0 评论 -
LeetCode 17. Letter Combinations of a Phone Number
Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephone buttons) is giv...原创 2019-04-29 19:08:48 · 266 阅读 · 0 评论 -
LeetCode: 22. Generate Parentheses
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.For example, given n = 3, a solution set is:[ "((()))", "(()())", "(())()", "()(())",...原创 2019-05-05 20:09:48 · 199 阅读 · 0 评论 -
LeetCode: 21. Merge Two Sorted Lists / 23. Merge k Sorted Lists
21. Merge Two Sorted ListsMerge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.Example:Input: 1->2->4...原创 2019-05-07 10:18:19 · 198 阅读 · 0 评论 -
LeetCode 42:接雨水
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6解题思路:一个柱子最终接多少水,取决于这个柱子所在的接水区间。也就是说要找到...原创 2019-05-20 22:01:59 · 310 阅读 · 0 评论 -
leetcode:39 and 40 数组总和 回溯法
给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。 示例 1:输入: candidates = [2,3,6,7], target = 7,所求解集为:...原创 2019-05-16 21:22:48 · 330 阅读 · 0 评论 -
Leetcode 50: Pow(x,n) 快速幂初探
题目描述:实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10 输出: 1024.00000示例 2:输入: 2.10000, 3 输出: 9.26100示例 3:输入: 2.00000, -2 输出: 0.25000如何用快速幂求a^10呢?假如我们现在知道了a^5的值,那么a的10次方只需要用 a的5次方乘以a的5...原创 2019-05-27 21:35:34 · 249 阅读 · 0 评论 -
LeetCode 16: 3Sum Closet
Given an array nums of n integers and an integer target, find threeintegers in nums such that the sum is closest to target. Return thesum of the three integers. You may assume that each input would...原创 2019-04-27 15:34:16 · 209 阅读 · 0 评论 -
LeetCode. 15:3sum
Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find all unique triplets in the arraywhich gives the sum of zero.Note:The solution set must not con...原创 2019-04-27 10:35:13 · 181 阅读 · 0 评论 -
剑指Offer:求和为S的连续正整数序列
题目描述:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列?参考书解,使用双指针创造滑动窗口,计算窗口的和与sum判断。一个小...原创 2019-04-04 11:31:29 · 389 阅读 · 1 评论 -
剑指Offer 和为S的两个数字
输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。首先做一个证明:作者:马客(Mark)链接:https://www.nowcoder.com/questionTerminal/390da4f7a00f44bea7c2f3d19491311b来源:牛客网找到的第一组(相差最大的),也就是乘积最小的。可以这样证明...原创 2019-04-07 16:19:06 · 192 阅读 · 0 评论 -
剑指Offer 左旋转字符串和翻转单词序列
1、左旋转字符串题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它2、翻转单词序列题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本...原创 2019-04-07 19:02:13 · 253 阅读 · 0 评论 -
剑指Offer:扑克牌顺子
LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张牌就可以变...原创 2019-04-11 20:26:42 · 175 阅读 · 0 评论 -
剑指Offer: 圆圈中最后剩下的数
每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数…这样下去…直到剩下最后一个小朋友,...原创 2019-04-12 10:57:06 · 269 阅读 · 0 评论 -
剑指Offer:求和1~n
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。利用逻辑与(&&)的短路特点,当前面为假时,后面不计算。因此,构成了递归结束的条件,回到递归栈顶的时候,即得到了求和的结果。 int Sum_Solution(int n) { int ans = n; ...原创 2019-04-12 11:06:48 · 295 阅读 · 0 评论 -
剑指Offer:构建乘积数组
给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。一个容易想到的方法是,使用减法去模拟除法(大佬们不屑的眼神)!// 减法模拟除法public int Devide(int n,int m) { int ret = 0; ...原创 2019-04-12 17:09:11 · 182 阅读 · 1 评论 -
剑指Offer:求二叉树的深度
题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。个人理解:是一道简单的递归题,通过比较根节点左子树的高度和右子树的高度来取较大者作为树的高度。递归下去,每一个中间节点都是一棵树的根。 int TreeNodeDepth(TreeNode* pRoot,int n) { if(pRoo...原创 2019-04-03 20:36:39 · 218 阅读 · 0 评论 -
LeetCode: Atoi
假设我们的环境只能存储 32 位大小的有符号整数,那么其数值范围为 [−231, 231 − 1]。如果数值超过这个范围,qing返回 INT_MAX (231 − 1) 或 INT_MIN (−231) 。示例 1:输入: “42” 输出: 42 示例 2:输入: " -42" 输出: -42 解释: 第一个非空白字符为 ‘-’, 它是一个负号。我们尽可能将负号与后面所有连续出...原创 2019-04-20 22:06:27 · 347 阅读 · 0 评论 -
剑指Offer: 链表中环的入口节点
给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。个人思路:链表中的环也就是出现次数超过1次的节点;std::map 可以很好的实现计数功能。踩一个坑,map模板的第一个参数,传入指针比传入结构体要好,且不需要去重载map的相关操作(如果传入结构体)。 ListNode* EntryNodeOfLoop(ListNode* pHead) { ...原创 2019-04-14 22:16:00 · 180 阅读 · 0 评论 -
Leetcode 62,63,64(自顶向下的动态规划)
62题一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?63题一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标...原创 2019-06-03 11:34:38 · 402 阅读 · 0 评论
分享