从零开始的力扣刷题记录-第四十九天

news/2024/11/29 7:38:17/

力扣每日四题

  • 163. 缺失的区间-简单
  • 1929. 数组串联-简单
  • 1304. 和为零的 N 个不同整数-简单
  • 2352. 相等行列对-中等
  • 总结

163. 缺失的区间-简单

题目描述:
给你一个闭区间 [lower, upper] 和一个 按从小到大排序 的整数数组 nums ,其中元素的范围在闭区间 [lower, upper] 当中。
如果一个数字 x 在 [lower, upper] 区间内,并且 x 不在 nums 中,则认为 x 缺失。
返回 准确涵盖所有缺失数字 的 最小排序 区间列表。也就是说,nums 的任何元素都不在任何区间内,并且每个缺失的数字都在其中一个区间内。

题解:
用两个变量分别指向闭区间和数组,一共只有三种情况分类讨论即可

代码(Go):

func findMissingRanges(nums []int, lower int, upper int) [][]int {i := lowerj := 0re := [][]int{}for i <= upper{if j < len(nums) && i != nums[j]{sce := []int{i,nums[j] - 1}re = append(re,sce)i = nums[j] + 1j++}else if j < len(nums) && i == nums[j]{i++j++}else if i <= upper{sce := []int{i,upper}re = append(re,sce)break}}return re
}

1929. 数组串联-简单

题目描述:
给你一个长度为 n 的整数数组 nums 。请你构建一个长度为 2n 的答案数组 ans ,数组下标 从 0 开始计数 ,对于所有 0 <= i < n 的 i ,满足下述所有要求:
ans[i] == nums[i]
ans[i + n] == nums[i]
具体而言,ans 由两个 nums 数组 串联 形成。
返回数组 ans 。

题解:
又是一道有竞争力扣最简单题的潜质的一道题,没啥好说的照着写就行

代码(Go):

func getConcatenation(nums []int) []int {l := len(nums)re := make([]int,2*l)for i,v := range nums{re[i] = vre[i + l] = v}return re
}

1304. 和为零的 N 个不同整数-简单

题目描述:
给你一个整数 n,请你返回 任意 一个由 n 个 各不相同 的整数组成的数组,并且这 n 个数相加和为 0 。

题解:
核心思路就是前面n-1个数随便填不重复就行,最后一个数填前面所有数的和的负数就可以了

代码(Go):

func sumZero(n int) []int {re := make([]int,n)sum := 0for i := 0;i < n - 1;i++{re[i] = i + 1sum = sum + i + 1}re[n - 1] = -sumreturn re
}

2352. 相等行列对-中等

题目描述:
给你一个下标从 0 开始、大小为 n x n 的整数矩阵 grid ,返回满足 Ri 行和 Cj 列相等的行列对 (Ri, Cj) 的数目。
如果行和列以相同的顺序包含相同的元素(即相等的数组),则认为二者是相等的。

题解:
一看就是哈希表,问题就是因为切片不能做哈希表的key所以需要改变一下形式,一开始想用数组,但是数组只能用数字做长度,计算出来的长度值不行,最后就通过把切片中的数值转换成字符串的方式建立了哈希表

代码(Go):

func equalPairs(grid [][]int) int {n := len(grid)dict := make(map[string]int)for _,v := range grid {dict[fmt.Sprint(v)]++}re := 0for j := 0; j < n; j++ {arr := make([]int,n)for i := 0; i < n; i++ {arr[i] = grid[i][j]}if v,ok := dict[fmt.Sprint(arr)];ok{re += v}}return re
}

总结

思路都比较简单,就是最后一个题用什么方式做哈希表的索引需要想一下


http://www.ppmy.cn/news/239690.html

相关文章

Android HTTP请求方式:HttpClient

1.HttpClient使用流程 基本流程&#xff1a; 2.HttpClient使用示例 1&#xff09;使用HttpClient发送GET请求 直接贴下简单的发送Get请求的代码&#xff1a; public class MainActivity extends Activity implements OnClickListener { private Button btnGet; private WebV…

Matlab论文插图绘制模板第99期—正负柱状图

在之前的文章中&#xff0c;分享了很多Matlab柱状图的绘制模板&#xff1a; 进一步&#xff0c;再来分享一种特殊的柱状图&#xff1a;正负柱状图。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;本期内容『数据代码』已上传资源群中&#xff0c;加群的朋友请自行下载…

C++设计模式之生成器模式(Builder)

文章目录 定义前言1. 问题2. 解决方案 结构适用场景实现方法优点缺点与其他模式的关系实例 定义 生成器是一种创建型设计模式&#xff0c;使你能够分步骤创建复杂对象。该模式允许你使用相同的创建 代码生成不同类型和形式的对象。 前言 1. 问题 假设有这样一个复杂对象&a…

tp-link交换机 TL-SG1024T(T系列)三种模式的选择

TL-SG1024T主要是为了解决网络克隆、无盘启动慢等问题而设计的&#xff0c;与普通交换机相比&#xff0c;TL-SG1024T多出一个三级滑动硬件开关&#xff0c;有三种可选模式&#xff1a;M1&#xff08;网络克隆&#xff09;、M2&#xff08;标准共享&#xff09;、M3&#xff08;…

TP LINK交换机 console 超级终端链接设置

1.查看COM口是com几打开设备管理器&#xff1b;展开端口&#xff1b;我的是COM3 2.打开超级终端&#xff0c;win7需要百度搜下载例如&#xff1a;https://pan.baidu.com/s/1jI1RnLG 3.打开会提示新建链接&#xff0c;随便命名4.选择端口5.点一次还原默认设置&#xff0c;位秒选…

tp交换机管理页面_TP-Link路由器作为无线交换机怎么设置【设置方法】

AP&#xff0c;即无线交换机&#xff0c;和router的区别就是不使用路由功能&#xff0c;一般是多台无线路由扩展信号覆盖用的。比如家里二层楼&#xff0c;一台放在一楼做Router&#xff0c;但是无线信号在二楼不稳定&#xff0c;那么可以在二楼放置第二台无线路由&#xff0c;…

CISCO路由器交换机简介及Packet+Tracer使用说明

转自&#xff1a; http://hi.baidu.com/cixiangdong/blog/item/f4a3e532d630354bad4b5fd7.html 一、路由器和交换机产品简介 &#xff08;一&#xff09;路由器 思科公司的产品被网络用户广泛的使用&#xff0c;对它们的典型产品及其特性的了解可对网络设备有一定大致的认识&am…

Cisco(PacketTracer) - 三层交换机

▷ 实验环境 PacketTracer 7.2.2Windows 10 <一> PC中如何对交换机进行配置&#xff1f; PC的RS232串口连接交换机的Console口&#xff0c;通过PC的超级终端进行配置。 注&#xff1a;win10连接交换机可使用 “超级终端” 软件。 Switch# Switch# Switch#en Switch#co…