算法题记录 29
声明
到目前为止,随机一题产生的周赛题目已经做完。接下来会以周赛题+某知识点题目的形式进行单独记录。
编程基础
3110.字符串的分数(1152)
给你一个字符串 s 。一个字符串的 分数 定义为相邻字符 ASCII 码差值绝对值的和。
请你返回 s 的 分数 。
涉及知识点
字符串
解决思路
送分题
1 | class Solution: |
2469.字符串的分数(1153)
给你一个四舍五入到两位小数的非负浮点数 celsius 来表示温度,以 摄氏度(Celsius)为单位。
你需要将摄氏度转换为 开氏度(Kelvin)和 华氏度(Fahrenheit),并以数组 ans = [kelvin, fahrenheit] 的形式返回结果。
返回数组 ans 。与实际答案误差不超过 10-5 的会视为正确答案。
涉及知识点
数组
解决思路
送分题
1 | class Solution: |
2413.最小偶倍数(1145)
给你一个正整数 n ,返回 2 和 n 的最小公倍数(正整数)。
涉及知识点
数学
解决思路
送分题
1 | class Solution: |
2236.判断根结点是否等于子结点之和(简单)
给你一个 二叉树 的根结点 root,该二叉树由恰好 3 个结点组成:根结点、左子结点和右子结点。
如果根结点值等于两个子结点值之和,返回 true ,否则返回 false 。
涉及知识点
树
解决思路
送分题
1 | class Solution: |
1486.数组异或操作(1181)
给你两个整数,n 和 start 。
数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length 。
请返回 nums 中所有元素按位异或(XOR)后得到的结果。
涉及知识点
循环
解决思路
送分题
1 | class Solution: |
1512.好数对的数目(1161)
给你一个整数数组 nums 。
如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对 。
返回好数对的数目。
涉及知识点
哈希表
解决思路
送分题
1 | class Solution: |
1534.统计好三元组(1279)
给你一个整数数组 arr ,以及 a、b 、c 三个整数。请你统计其中好三元组的数量。
如果三元组 (arr[i], arr[j], arr[k]) 满足下列全部条件,则认为它是一个 好三元组 。
0 <= i < j < k < arr.length
|arr[i] - arr[j]| <= a
|arr[j] - arr[k]| <= b
|arr[i] - arr[k]| <= c
其中 |x| 表示 x 的绝对值。
返回 好三元组的数量 。
涉及知识点
循环
解决思路
送分题
1 | class Solution: |
258.各位相加(简单)
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。
涉及知识点
模拟
解决思路
送分题
1 | class Solution: |
231.2的幂(简单)
给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。
如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。
涉及知识点
数学
解决思路
送分题
1 | class Solution: |
326.3的幂(简单)
给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。
整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x
涉及知识点
数学
解决思路
送分题
1 | class Solution: |
263.丑数(简单)
丑数 就是只包含质因数 2、3 和 5 的 正 整数。
给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。
涉及知识点
数学
解决思路
送分题
1 | class Solution: |
1470.重新排列数组(1121)
给你一个数组 nums ,数组中有 2n 个元素,按 [x1,x2,…,xn,y1,y2,…,yn] 的格式排列。
请你将数组按 [x1,y1,x2,y2,…,xn,yn] 格式重新排列,返回重排后的数组。
涉及知识点
数组
解决思路
送分题
1 | class Solution: |
867.转置矩阵(1259)
给你一个二维整数数组 matrix, 返回 matrix 的 转置矩阵 。
矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。
涉及知识点
数组
解决思路
送分题
1 | class Solution: |
1422.分割字符串的最大得分(1238)
给你一个由若干 0 和 1 组成的字符串 s ,请你计算并返回将该字符串分割成两个 非空 子字符串(即 左 子字符串和 右 子字符串)所能获得的最大得分。
「分割字符串的得分」为 左 子字符串中 0 的数量加上 右 子字符串中 1 的数量。
涉及知识点
数组
解决思路
送分题
1 | class Solution: |
2586.统计范围内的元音字符串数(1179)
给你一个下标从 0 开始的字符串数组 words 和两个整数:left 和 right 。
如果字符串以元音字母开头并以元音字母结尾,那么该字符串就是一个 元音字符串 ,其中元音字母是 ‘a’、’e’、’i’、’o’、’u’ 。
返回 words[i] 是元音字符串的数目,其中 i 在闭区间 [left, right] 内。
涉及知识点
字符串
解决思路
送分题
1 | class Solution: |
852.山脉数组的峰顶索引(1182)
给定一个长度为 n 的整数 山脉 数组 arr ,其中的值递增到一个 峰值元素 然后递减。
返回峰值元素的下标。
你必须设计并实现时间复杂度为 O(log(n)) 的解决方案。
涉及知识点
二分
解决思路
送分题
1 | class Solution: |
声明
题目均来源于leetcode公开题库,部分方法解析来源于高赞题解,如有不妥请联系。