LeetCode
十四说四十、
一只努力搬砖的985小硕
展开
-
数据结构与算法 - IPO
LeetCode 502 -IPO 题目描述:假设 力扣(LeetCode)即将开始其 IPO。为了以更高的价格将股票卖给风险投资公司,力扣 希望在 IPO 之前开展一些项目以增加其资本。 由于资源有限,它只能在 IPO 之前完成最多 k 个不同的项目。帮助 力扣 设计完成最多 k 个不同项目后得到最大总资本的方式。给定若干个项目。对于每个项目 i,它都有一个纯利润 Pi,并且需要最小的...原创 2019-11-12 00:10:46 · 807 阅读 · 0 评论 -
数据结构与算法 - 计算完全二叉树的节点个数
计算完全二叉树的节点个数要求时间复杂度小于O(N)先说思路:直接看该节点的右子树的最左节点是否到达了树的底层(是否是最后一层),是的话那么该节点的左子树是满二叉树,可以直接求出其左子树的节点个数,这个可以直接用公式2^层数 - 1,由于该节点的右子树还是一颗完全二叉树,在对右子树进行递归操作否则的话,那么就说明右子树是一颗满二叉树,直接上公式计算,在对左子树做递归操作/**...原创 2019-11-07 22:30:41 · 410 阅读 · 0 评论 -
数据结构与算法 - 二叉树的后继节点查找
题目描述:给一个二叉树的随机节点,查找这个节点的后继节点前驱节点:对一棵二叉树进行中序遍历,遍历后的顺序,当前节点的前一个节点为该节点的前驱节点;后继节点:对一棵二叉树进行中序遍历,遍历后的顺序,当前节点的后一个节点为该节点的后继节点;思路一:直接遍历全部的二叉树,根据顺序直接得出结果,但是时间复杂度是O(N)思路二:首先判断这个节点是否有右子树,有的话直接找到这个右子树的最左的...原创 2019-11-06 20:39:05 · 283 阅读 · 0 评论 -
数据结构与算法 -- 二叉树的 递归非递归 先序中序后序遍历 层次遍历
二叉树的定义:public static class Node{ public int value; public Node left; public Node right; public Node(int value){ this.value = value; } }二叉...原创 2019-10-25 21:38:09 · 184 阅读 · 0 评论 -
数据结构与算法基础 -- 回文链表(非常全的解法)
题目描述 请判断一个链表是否为回文链表。示例1:输入: 1->2 输出: false 示例2:输入: 1->2->2->1 输出: true 进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?首先是节点的定义: public static class Node{ public int value; publ...原创 2019-10-20 19:58:24 · 185 阅读 · 0 评论 -
leetcode -- 146. LRU缓存机制
运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最近最少使用的数...原创 2019-10-15 21:41:18 · 118 阅读 · 0 评论 -
leetcode - 自顶向下解决 198.打家劫舍 问题
先确定递归结构对于[1,2,3,1]的房子我们可以有以下几种偷法一: 1 +[3,1]二:2+[1]三:3四:1对于n个房子可以一:1+[3,4,。。。,n]二:2+【4,5,。。。,n】三:3+【5,6,。。。。,n】。。。N:n这样递归结构就出来了 res 随便赋一个初始值0这是tryRob的函数的定义也就是我们要递归的函数int tryRob(int[] ...原创 2019-05-07 12:23:52 · 303 阅读 · 0 评论 -
leetcode 4. 寻找两个有序数组的中位数
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中位数是 (2 + 3)...原创 2019-03-01 14:46:37 · 76 阅读 · 0 评论 -
leetcode 72. 编辑距离
定义编辑距离又称Leveinshtein距离,是由俄罗斯科学家Vladimir Levenshtein在1965年提出。编辑距离是计算两个文本相似度的算法之一,以字符串为例,字符串a和字符串b的编辑距离是将a转换成b的最小操作次数,这里的操作包括三种:插入一个字符删除一个字符替换一个字符举个例子,kitten和sitting的编辑距离是3,kitten -> sitten(k替换为...转载 2019-02-28 13:32:17 · 210 阅读 · 0 评论 -
leetcode-最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。思路:首先判断给的字符串的个数,如果只...原创 2018-12-19 10:52:36 · 86 阅读 · 0 评论 -
leetcode-整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。思路:先设置一...原创 2018-12-17 21:08:34 · 106 阅读 · 0 评论 -
leetcode-实现strStr()
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needl...原创 2018-12-22 23:00:41 · 85 阅读 · 0 评论 -
leetcode-反转字符串
编写一个函数,其作用是将输入的字符串反转过来。示例 1:输入: “hello”输出: “olleh”示例 2:输入: “A man, a plan, a canal: Panama”输出: “amanaP :lanac a ,nalp a ,nam A”思路:最容易想到的就是遍历一遍然后把前后的位置元素互换,用一个t1变量临时存储内容;public class Solu...原创 2018-12-16 18:46:18 · 304 阅读 · 0 评论 -
leetcode-加一
letcode-加一给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 43...原创 2018-12-12 11:18:31 · 104 阅读 · 0 评论 -
leetcode-字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = “leetcode”返回 0.s = “loveleetcode”,返回 2.注意事项:您可以假定该字符串只包含小写字母。思路很多 远远不止两种。。。(1)暴力搜索: 两个循环(2)先用map初始化,再遍历对比public class Soluti...原创 2018-12-19 22:30:26 · 104 阅读 · 0 评论