leetcode
程序员椰子橙
这个作者很懒,什么都没留下…
展开
-
答对了这道题,我拿到了阿里30K的offer——剑指 Offer 32 - II. 从上到下打印二叉树 II
同学去阿里面试,项目问完了,面试官感觉一般,出了下面这道题。往往面试官觉得项目一般,没有太多亮点的时候,就会考察应聘者的基础知识是否扎实,基础知识扎实的话,也能进大厂;一般来讲,项目和基础二者必须有其一,才有进大厂的可能。这位同学思考了一会儿,顺利的做除了这道题,并且给出了解答,面试官很满意,顺利的拿到了offer。大家好好看下下面这道题。请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。例如: 给定原创 2021-03-24 15:19:33 · 229 阅读 · 0 评论 -
144. 二叉树的前序遍历 Binary Tree Preorder Traversal
给定一个二叉树,返回它的 前序 遍历。 示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]递归: public List<Integer> preorderTraversal(TreeNode root) { List<Integer> ret = new A...原创 2019-04-01 21:29:07 · 207 阅读 · 0 评论 -
leetcode143. 重排链表 Reorder List
给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→…你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:给定链表 1->2->3->4, 重新排列为 1->4->2->3.示例 2:给定链表 1->2->3->4->5, 重新排列...原创 2019-04-01 23:01:13 · 104 阅读 · 0 评论 -
leetcode 141. 环形链表 Linked List Cycle
给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head = [1,2], pos = 0输出:true...原创 2019-04-03 00:17:34 · 136 阅读 · 0 评论 -
链表中环的入口节点
给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def EntryNodeOfLoop(s...原创 2019-04-16 17:48:15 · 149 阅读 · 0 评论 -
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。解法1234解法1# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = None class Solution: # 返回从尾部到头部的列表值序...原创 2019-04-16 20:31:57 · 1353 阅读 · 0 评论 -
删除链表中重复的结点
删除链表中重复的结点class Solution: def deleteDuplication(self, pHead): # write code here result=ListNode(0) res=result result.next=pHead tmp=pHead while tmp...原创 2019-04-16 22:58:03 · 216 阅读 · 0 评论 -
python解决递归栈溢出的方法,尾递归
解决递归调用栈溢出的方法是通过尾递归优化,事实上尾递归和循环的效果是一样的,所以,把循环看成是一种特殊的尾递归函数也是可以的。尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式。这样,编译器或者解释器就可以把尾递归做优化,使递归本身无论调用多少次,都只占用一个栈帧,不会出现栈溢出的情况。上面的fact(n)函数由于return n * fact(n - 1)引入了...原创 2019-04-17 16:48:17 · 1373 阅读 · 0 评论 -
字符串转换成一个整数
字符串转换成一个整数边界条件:数据上下 溢出空字符串只有正负号有无正负号错误标志输出public class Solution { public int StrToInt(String str) { if(str == null || str.length() == 0)return 0; int start; int ta...原创 2019-04-18 03:00:42 · 359 阅读 · 0 评论 -
判断是否为平衡二叉树
最直接的做法,遍历每个结点,借助一个获取树深度的递归函数,根据该结点的左右子树高度差判断是否平衡,然后递归地对左右子树进行判断。public classSolution { public boolean IsBalanced_Solution(TreeNode root) { if(root == null) { return true; ...原创 2019-04-19 10:55:10 · 759 阅读 · 0 评论 -
和为S的连续正数序列
小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述:输出所有和为S的连续正数序列。序列内...原创 2019-04-19 14:20:17 · 195 阅读 · 0 评论 -
leetcode求二叉树深度
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。非递归写法:层次遍历import java.util.Queue;import java.util.LinkedList; public class Solution { public int TreeDepth(TreeNode pRoot) { ...原创 2019-05-08 16:09:44 · 260 阅读 · 0 评论 -
LeetCode和为S的两个数字
输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。数列满足递增,设两个头尾两个指针i和j,若ai + aj == sum,就是答案(相差越远乘积越小)若ai + aj > sum,aj肯定不是答案之一(前面已得出 i 前面的数已是不可能),j -= 1若ai + aj < sum,ai肯定不是答案之一...原创 2019-05-08 19:16:52 · 244 阅读 · 0 评论 -
leetcode 149. 直线上最多的点数 max-points-on-a-line
给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。示例 1:输入: [[1,1],[2,2],[3,3]]输出: 3解释:^|| o| o| o +------------->0 1 2 3 4示例 2:输入: [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]]输出: 4解释:...原创 2019-03-28 00:16:10 · 184 阅读 · 0 评论 -
leetcode150. 逆波兰表达式求值
示例 1:输入: ["2", "1", "+", "3", "*"]输出: 9解释: ((2 + 1) * 3) = 9示例 2:输入: ["4", "13", "5", "/", "+"]输出: 6解释: (4 + (13 / 5)) = 6(a+b)*c-(a+b)/e的后缀表达式为:(a+b)*c-(a+b)/e→((a+b)*c)((a+b)/e)-→((a+b...原创 2019-03-27 00:17:45 · 152 阅读 · 0 评论 -
leetcode145. 二叉树的后序遍历 binary-tree-postorder-traversal
给定一个二叉树,返回它的 后序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1]//写法(1)public List<Integer> res = new ArrayList<Integer>();public List<Integer> postorderT...原创 2019-03-29 23:52:56 · 95 阅读 · 0 评论 -
Leetcode 17. 电话号码的字母组合 46. 全排列
@所有人【任务6,实战递归】实战递归:完成Leetcode上的Letter Combinations of a Phone Number(17)及permutations(46)! 同时温习前五天内容,做出总结!打卡方式:提交递归的心得笔记&nbsp; +LeetCode提交结果与代码截止时间:作业在1月31日22:00完成;点评在2月1日中午12:00完成。大家如果在作业中引用了别人的...原创 2019-01-31 17:25:56 · 345 阅读 · 0 评论 -
Hash table
Hash tableleetcodeleetcode001.两数之和解法一:.用一个嵌套循环把nums列表遍历两次,耗时太长,时间复杂度高代码如下:class Solution: def twoSum(self,nums, target): &amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;quot;原创 2019-01-27 12:39:09 · 153 阅读 · 0 评论 -
LeetCode 15. 三数之和
15. 三数之和LeetCode 15. [三数之和](https://leetcode-cn.com/problems/3sum/)LeetCode 15. 三数之和给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 num...原创 2019-02-01 14:38:17 · 134 阅读 · 0 评论 -
实战DP
实战DP原创 2019-02-01 14:51:20 · 277 阅读 · 0 评论 -
链表
链表概念介绍结点结构头指针head和终端结点单链表leetcode概念介绍链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。以“结点的序列”表示线性表称作线性链表(单链表),单链表是链式存取的结构。结点结构┌───┬───┐│data │next │└───┴───┘d...原创 2019-01-27 20:59:32 · 253 阅读 · 0 评论 -
LeetCode16. 最接近的三数之和
最接近的三数之和给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2)....原创 2019-02-03 00:37:37 · 112 阅读 · 0 评论 -
leetcode寻找两个有序数组的中位数
leetcode寻找两个有序数组的中位数给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -&gt; 4 -&gt; 3) + (5 -&gt; 6 -&gt;...原创 2019-01-29 00:00:54 · 121 阅读 · 0 评论 -
最长回文子串
最长回文子串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”一、O(n^3)时间复杂度方法——暴力求解1.思想:1)从最长的子串开始,遍历所有该原字符串的子串;2)每找出一个字符串,就判断该字符串...原创 2019-01-29 01:53:51 · 113 阅读 · 0 评论 -
二叉树
二叉树验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ ...原创 2019-01-29 17:54:43 · 179 阅读 · 0 评论 -
递归及DP
递归及DP递归动态规划LeetCode参考文献递归程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有...原创 2019-01-30 17:20:45 · 1339 阅读 · 0 评论 -
leetcode 8. 字符串转换整数 (atoi)
leetcode 8. 字符串转换整数 (atoi)请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有...原创 2019-01-30 20:30:04 · 159 阅读 · 0 评论 -
leetcode111. 二叉树的最小深度
给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7python# Definition for a binary tree node.# class...原创 2019-03-26 00:33:33 · 115 阅读 · 0 评论 -
LeetCode 14.最长公共前缀
最长公共前缀LeetCode 14.[最长公共前缀](https://leetcode-cn.com/problems/longest-common-prefix/)参考文献LeetCode 14.最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示...原创 2019-01-31 16:33:16 · 277 阅读 · 0 评论