leetcode
huihui_zw
这个作者很懒,什么都没留下…
展开
-
165 比较版本号
给你两个版本号 version1 和 version2 ,请你比较它们。版本号由一个或多个修订号组成,各修订号由一个 '.' 连接。每个修订号由 多位数字 组成,可能包含 前导零 。每个版本号至少包含一个字符。修订号从左到右编号,下标从 0 开始,最左边的修订号下标为 0 ,下一个修订号下标为 1 ,以此类推。例如,2.5.33 和 0.1 都是有效的版本号。比较版本号时,请按从左到右的顺序依次比较它们的修订号。比较修订号时,只需比较 忽略任何前导零后的整数值 。也就是说,修订号 1 和修订号 00原创 2021-09-01 19:53:14 · 95 阅读 · 0 评论 -
1109. 航班预订统计
这里有n个航班,它们分别从 1 到 n 进行编号。有一份航班预订表bookings ,表中第i条预订记录bookings[i] = [firsti, lasti, seatsi]意味着在从 firsti到 lasti (包含 firsti 和 lasti )的 每个航班 上预订了 seatsi个座位。请你返回一个长度为 n 的数组answer,其中 answer[i] 是航班 i 上预订的座位总数。原创 2021-08-31 20:54:18 · 104 阅读 · 0 评论 -
528 按权重随机选择
给定一个正整数数组w ,其中w[i]代表下标 i的权重(下标从 0 开始),请写一个函数pickIndex,它可以随机地获取下标 i,选取下标 i的概率与w[i]成正比。例如,对于 w = [1, 3],挑选下标 0 的概率为 1 / (1 + 3)= 0.25 (即,25%),而选取下标 1 的概率为 3 / (1 + 3)= 0.75(即,75%)。也就是说,选取下标 i 的概率为 w[i] / sum(w) 。该题的关键还是找准随机值该插入的位置,还有随机值选取的范围...原创 2021-08-30 21:10:22 · 115 阅读 · 0 评论 -
1588 所有奇数长度子数组和
首先一个特别耗时的想法。class Solution { public int sumOddLengthSubarrays(int[] arr) { int ans = 0,ans1 = 0; for(int i = 0; i < arr.length; i++){ ans1 = 0; ans1 += arr[i]; ans = ans + ans1; int原创 2021-08-29 21:18:10 · 91 阅读 · 0 评论 -
295. 数据流的中位数
中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。例如,[2,3,4]的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:void addNum(int num) - 从数据流中添加一个整数到数据结构中。double findMedian() - 返回目前所有元素的中位数。这道题的引用思想是大堆和小堆。因为它们可以定位最大值和最小值,即可以定位有序列表的中间两个数。比较有意思的就是PriorityQue.原创 2021-08-27 22:26:25 · 91 阅读 · 0 评论 -
leetcode 1646 获得生出数组中的最大值
给你一个整数 n 。按下述规则生成一个长度为 n + 1 的数组 nums :nums[0] = 0nums[1] = 1当 2 <= 2 * i <= n 时,nums[2 * i] = nums[i]当 2 <= 2 * i + 1 <= n 时,nums[2 * i + 1] = nums[i] + nums[i + 1]返回生成数组 nums 中的 最大值。可以将两者合并,直接求解,这题不难直接来就行。class Solution { publi原创 2021-08-23 22:31:57 · 68 阅读 · 0 评论