三个leetcode算法题

149 阅读1分钟

这是我参与2022首次更文挑战的第24天,活动详情查看:2022首次更文挑战

之前在力扣上利用javascript做了三个算法题(前K个高频单词、计算两个数据间的汉明距离、黑板异或游戏),都比较简单,我主要是为了熟悉js中与数组、字符串的一些函数方法,这篇文章记录一下这三个题的内容和代码。

一、前K个高频单词

题目

题目网址:leetcode-cn.com/problems/to…

image.png

示例

image.png

注意事项

image.png

进阶: 尝试以 O(n log k) 时间复杂度和 O(n) 空间复杂度解决。

题解代码

image.png

二、计算两个数据间的汉明距离

题目

题目网址:leetcode-cn.com/problems/ha…

image.png

两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目

示例

image.png

提示

提示: 0 <= x, y <= 231 - 1

题解方法一:按位异或

原理

^按位异或:两个位不同,结果是1,否则结果为0.

image.png

代码

image.png

题解方法二:按位与

原理

&按位与:两个位都是1,结果就是1,否则为0

image.png

代码

image.png

三、黑板异或游戏

题目

题目网址:leetcode-cn.com/problems/ch… image.png

示例

image.png

提示

  • 1 <= nums.length <= 1000
  • 0 <= nums[i] < 216

题解代码

Alice胜利要满足以下两个条件中的一个:  1. nums数组全部元素按位异或,结果为0  2. nums数组长度为偶数

image.png