随笔分类 -  oj记录

上一页 1 2 3 4 5 6 7 8 9 ··· 15 下一页
没事刷刷oj,总是会对自己有帮助的
摘要:Q:打乱一个没有重复元素的数组。 示例: A: 以下部分引用自@labuladong的算法小抄: 此类算法都是靠随机选取元素交换来获取随机性,直接看代码(伪码),该算法有 4 种形式 第二个和第四个写法都是减少最后一次1 1的交换。 分析洗牌算法正确性的准则:产⽣的结果必须有 $n!$ 种可能,否则 阅读全文
posted @ 2020-04-18 14:07 Shaw_喆宇 阅读(451) 评论(0) 推荐(0)
摘要:Q:返回字符串 text 中按字典序排列最小的子序列,该子序列包含 text 中所有不同字符一次。 示例 1: 输入:"cdadabcc" 输出:"adbc" 示例 2: 输入:"abcd" 输出:"abcd" 示例 3: 输入:"ecbacba" 输出:"eacb" 示例 4: 输入:"leetc 阅读全文
posted @ 2020-04-18 12:53 Shaw_喆宇 阅读(1163) 评论(0) 推荐(0)
摘要:Q:给定一个字符串数组 words,找到 length(word[i]) length(word[j]) 的最大值,并且这两个单词不含有公共字母。你可以认为每个单词只包含小写字母。如果不存在这样的两个单词,返回 0。 示例 1: 输入: ["abcw","baz","foo","bar","xtfn 阅读全文
posted @ 2020-04-17 14:54 Shaw_喆宇 阅读(216) 评论(0) 推荐(0)
摘要:Q:给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。 请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。 说明: 不允许旋转信封。 阅读全文
posted @ 2020-04-16 14:37 Shaw_喆宇 阅读(1309) 评论(0) 推荐(0)
摘要:Q:给定两个由一些闭区间组成的列表,每个区间列表都是成对不相交的,并且 已经排序 。返回这两个区间列表的交集。 (形式上,闭区间 [a, b](其中 a array = new ArrayList(); if (A.length == 0 || B.length == 0) return new i 阅读全文
posted @ 2020-04-16 11:52 Shaw_喆宇 阅读(710) 评论(0) 推荐(0)
摘要:Q:给出一个区间的集合,请合并所有重叠的区间。 示例 1: 输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]. 示例 2: 输入: [[1,4],[4,5 阅读全文
posted @ 2020-04-16 11:20 Shaw_喆宇 阅读(254) 评论(0) 推荐(0)
摘要:Q:你有一块棋盘,棋盘上有一些格子已经坏掉了。你还有无穷块大小为1 2的多米诺骨牌,你想把这些骨牌不重叠地覆盖在完好的格子上,请找出你最多能在棋盘上放多少块骨牌?这些骨牌可以横着或者竖着放。 输入:n, m代表棋盘的大小;broken是一个b 2的二维数组,其中每个元素代表棋盘上每一个坏掉的格子的位 阅读全文
posted @ 2020-04-15 15:40 Shaw_喆宇 阅读(354) 评论(0) 推荐(0)
摘要:Q:给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。 注意: 数组长度 n 满足以下条件: 1 ≤ n ≤ 1000 1 ≤ m ≤ min(50, n) 示例: 输入: nums = [7,2,5,10,8] m 阅读全文
posted @ 2020-04-15 11:56 Shaw_喆宇 阅读(650) 评论(0) 推荐(0)
摘要:Q:给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。一般来说,删除节点可分为两个步骤: 首先找到需要删除的节点;如果找到了,删除它。说明: 要求算法时间复杂度为 O(h),h 为 阅读全文
posted @ 2020-04-15 10:37 Shaw_喆宇 阅读(272) 评论(0) 推荐(0)
摘要:Q: 为搜索引擎设计一个搜索自动补全系统。用户会输入一条语句(最少包含一个字母,以特殊字符 ' ' 结尾)。除 ' ' 以外用户输入的每个字符,返回历史中热度前三并以当前输入部分为前缀的句子。下面是详细规则: 一条句子的热度定义为历史上用户输入这个句子的总次数。 返回前三的句子需要按照热度从高到低排 阅读全文
posted @ 2020-04-14 17:00 Shaw_喆宇 阅读(766) 评论(0) 推荐(0)
摘要:Q:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉树: root = [3,5,1,6,2 阅读全文
posted @ 2020-04-14 15:07 Shaw_喆宇 阅读(153) 评论(0) 推荐(0)
摘要:Q:给出一个字符串 S,考虑其所有重复子串(S 的连续子串,出现两次或多次,可能会有重叠)。返回任何具有最长可能长度的重复子串。(如果 S 不含重复子串,那么答案为 ""。) 示例 1: 输入:"banana" 输出:"ana" 示例 2: 输入:"abcd" 输出:"" 提示: 2 0; i ) 阅读全文
posted @ 2020-04-11 18:04 Shaw_喆宇 阅读(994) 评论(0) 推荐(0)
摘要:Q:给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。 说明: 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 你算法的时间复杂度应该为  阅读全文
posted @ 2020-04-11 15:00 Shaw_喆宇 阅读(1091) 评论(0) 推荐(0)
摘要:Q:给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。 注意: 十六进制中所有字母(a f)都必须是小写。 十六进制字符串中不能包含多余的前导零。如果要转化的数为0,那么以单个字符'0'来表示;对于其他情况,十六进制字符串中的第一个字符将不会是0字符。 给 阅读全文
posted @ 2020-04-11 11:39 Shaw_喆宇 阅读(668) 评论(0) 推荐(0)
摘要:Q:给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 输入: 2 / \ 1 3 输出: true 示例 2: 输入: 5 / \ 阅读全文
posted @ 2020-04-10 20:54 Shaw_喆宇 阅读(151) 评论(0) 推荐(0)
摘要:Q:矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。给出两个矩形,判断它们是否重叠并返回结果。 示例 1: 输入:rec1 = [ 阅读全文
posted @ 2020-04-10 20:04 Shaw_喆宇 阅读(292) 评论(0) 推荐(0)
摘要:Q:你有两个字符串,即pattern和value。 pattern字符串由字母"a"和"b"组成,用于描述字符串中的模式。例如,字符串"catcatgocatgo"匹配模式"aabab"(其中"cat"是"a","go"是"b"),该字符串也匹配像"a"、"ab"和"b"这样的模式。但需注意"a"和 阅读全文
posted @ 2020-04-10 17:06 Shaw_喆宇 阅读(298) 评论(0) 推荐(0)
摘要:Q:给定两条线段(表示为起点start = {X1, Y1}和终点end = {X2, Y2}),如果它们有交点,请计算其交点,没有交点则返回空值。 要求浮点型误差不超过10^ 6。若有多个交点(线段重叠)则返回X值最小的点,X坐标相同则返回Y值最小的点。 示例 1: 输入: line1 = {0, 阅读全文
posted @ 2020-04-08 15:43 Shaw_喆宇 阅读(170) 评论(0) 推荐(0)
摘要:Q:请简化给出的Unix样式的文件绝对路径,也就是转换成规范路径 在Unix样式的文件系统中, .代表当前目录,.. 表示将目录向上移动一级,更多的介绍可以查看 Absolute path vs relative path in Linux/Unix 请注意,返回的规范路径必须以斜杠“/”开头,并且 阅读全文
posted @ 2020-04-08 11:09 Shaw_喆宇 阅读(186) 评论(0) 推荐(0)
摘要:Q:给出一个非负整数数组,你最初在数组第一个元素的位置 数组中的元素代表你在这个位置可以跳跃的最大长度 判断你是否能到达数组最后一个元素的位置 例如 A =[2,3,1,1,4], 返回 true. A =[3,2,1,0,4], 返回 false. A: public static boolean 阅读全文
posted @ 2020-04-08 10:48 Shaw_喆宇 阅读(167) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 8 9 ··· 15 下一页