摘要:
文章目录 前言一、优先队列的优点二、具体实现方法代码 总结 前言 提示:本文用C++实现了优先队列: 一、优先队列的优点 优先队列(priority queue)可以在 O(1) 时间内获得最大值,并且可以在 O(log n) 时间内取出 最大值或插入任意值。 二、具体实现方法 优先队列常常用堆(h 阅读全文
摘要:
位运算 题目详情 给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。 进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现? 示例1: 输入:nums = [1,2,1,3,2,5] 输出: 阅读全文
摘要:
位运算 题目详情 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 示例1: 输入:nums = [2,2,3,2] 输出:3 示例2: 输入:nums = [0,1,0,1,0,1,99] 输出:99 方法一 直接利用哈 阅读全文
摘要:
位运算 题目详情 给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。 示例1: 输入:n = 5 输出:true 解释:5 的二进制表示是:101 示例2: 输入:n = 7 输出:false 解释:7 的二进制表示是:111. 示例3: 阅读全文
摘要:
位运算 题目详情 给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。 示例1: 输入:nums = [3,0,1] 输出:2 解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出 阅读全文
摘要:
位运算 题目详情 给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案。 示例1: 输入:n = 2 输出:[0,1,1] 解释: 0 --> 0 1 --> 1 2 --> 10 示例2: 输入:n 阅读全文
摘要:
位运算 题目详情 给你一个字符串数组 words ,找出并返回 length(words[i]) * length(words[j]) 的最大值,并且这两个单词不含有公共字母。如果不存在这样的两个单词,返回 0 。 示例1: 输入:words = ["abcw","baz","foo","bar", 阅读全文
摘要:
位运算 题目详情 给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。 整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4^x 示例1: 输入:n = 16 输出:true 示例2: 输入:n = 5 输出:false 示例3: 阅读全文
摘要:
位运算 题目详情 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例1: 输入: [2,2,1] 输出: 1 示例2: 输入: [4,1,2,1,2] 输出: 4 思路 阅读全文
摘要:
位运算 题目详情 颠倒给定的 32 位无符号整数的二进制位。 提示: 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。 在 Java 中,编译器使 阅读全文