从零开始的力扣刷题记录-第七十二天

news/2024/11/19 11:20:27/

力扣每日四题

  • 2206. 将数组划分成相等数对-简单
  • 1920. 基于排列构建数组-简单
  • 1253. 重构 2 行二进制矩阵-中等
  • 673. 最长递增子序列的个数-中等
  • 总结

2206. 将数组划分成相等数对-简单

题目描述:
给你一个整数数组 nums ,它包含 2 * n 个整数。
你需要将 nums 划分成 n 个数对,满足:
每个元素 只属于一个 数对。
同一数对中的元素 相等 。
如果可以将 nums 划分成 n 个数对,请你返回 true ,否则返回 false

题解:
哈希表统计各元素数量,如果有不能被2整除的就返回false

代码(Go):

func divideArray(nums []int) bool {dict := map[int]int{}for _,v := range nums{dict[v]++}for _,v := range dict{if v%2 == 1{return false}}return true
}

1920. 基于排列构建数组-简单

题目描述:
给你一个 从 0 开始的排列 nums(下标也从 0 开始)。请你构建一个 同样长度 的数组 ans ,其中,对于每个 i(0 <= i < nums.length),都满足 ans[i] = nums[nums[i]] 。返回构建好的数组 ans 。
从 0 开始的排列 nums 是一个由 0 到 nums.length - 1(0 和 nums.length - 1 也包含在内)的不同整数组成的数组。

题解:
按描述模拟即可

代码(Go):

func buildArray(nums []int) []int {ans := make([]int,len(nums))for i,v := range nums{ans[i] = nums[v]}return ans
}

1253. 重构 2 行二进制矩阵-中等

题目描述:
给你一个 2 行 n 列的二进制数组:
矩阵是一个二进制矩阵,这意味着矩阵中的每个元素不是 0 就是 1。
第 0 行的元素之和为 upper。
第 1 行的元素之和为 lower。
第 i 列(从 0 开始编号)的元素之和为 colsum[i],colsum 是一个长度为 n 的整数数组。
你需要利用 upper,lower 和 colsum 来重构这个矩阵,并以二维整数数组的形式返回它。
如果有多个不同的答案,那么任意一个都可以通过本题。
如果不存在符合要求的答案,就请返回一个空的二维数组。

题解:
优先从行元素之和更大的一行开始放,如果等于2就直接放,放完2再遍历一遍放1,直到这一行放不下,换另一行放1,如果放不下或者没放完就返回空数组

代码(Go):

func reconstructMatrix(upper int, lower int, colsum []int) [][]int {flag := 1if upper < lower{upper,lower = lower,upperflag = 0}re := make([][]int,2)for i,_ := range re{temp := make([]int,len(colsum))re[i] = temp}sum := upper + lowerfor j := 0;j < len(colsum);j++{if colsum[j] == 2 && sum > lower{re[0][j] = 1colsum[j]--sum--}}for j := 0;j < len(colsum);j++{if colsum[j] == 1 && sum > lower && re[0][j] == 0{re[0][j] = 1colsum[j]--sum--}}if sum != lower{return [][]int{}}for j := 0;j < len(colsum);j++{if colsum[j] > 0 && sum > 0{re[1][j] = 1sum--}else if colsum[j] > 0{return [][]int{}}}if sum != 0{return [][]int{}}if flag == 0{re[0],re[1] = re[1],re[0]}return re
}

673. 最长递增子序列的个数-中等

题目描述:
给定一个未排序的整数数组 nums , 返回最长递增子序列的个数 。
注意 这个数列必须是 严格 递增的。

题解:
在昨天那道题的基础上增加了统计数量,方法就是把一维dp变成二维,增加一位用来记录当前长度递增子序列的数目,其实就相当于同时进行了两个动态规划,最后找出最长的长度并统计数量即可

代码(Go):

func findNumberOfLIS(nums []int) int {dp := make([][]int,len(nums))for i,_ := range dp{temp := make([]int,2)dp[i] = temp}dp[0][0] = 1dp[0][1] = 1for i := 1;i < len(nums);i++{for j := 0;j < i;j++{if nums[i] > nums[j]{if dp[i][0] == dp[j][0]{dp[i][1] += dp[j][1]}else if dp[i][0] < dp[j][0]{dp[i][0] = dp[j][0]dp[i][1] = dp[j][1]}}}dp[i][0]++if dp[i][0] == 1{dp[i][1] = 1}}max := 0for _,v := range dp{if v[0] > max{max = v[0]}}re := 0for _,v := range dp{if v[0] == max{re += v[1]}}return re
}

总结

今天比较顺利,两道中等题都不难,动态规划是昨天题的加强版,但是动态规划这种题知道状态怎么转移就很好做了


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

相关文章

LIS实验室信息管理系统功能模块(Oracle数据库、Client/Server架构)

一、系统框架简介 1、技术框架 &#xff08;1&#xff09;总体框架&#xff1a; ♦SaaS架构的Client/Server应用 ♦服务可伸缩&#xff0c;多服务协同 ♦服务可拆分&#xff0c;功能易扩展 &#xff08;2&#xff09;技术细节&#xff1a; ♦体系结构&#xff1a;Client/Serv…

为何及如何使用数据结构提升算法效率和问题解决能力?

数据结构是计算机科学中的一个重要概念&#xff0c;它是一种组织和存储数据的方式。数据结构提供了一种在计算机程序中有效地组织和操作数据的方法。 数据结构的主要目的是解决问题和优化算法。它们帮助我们在计算机内存中存储和组织数据&#xff0c;以便能够高效地访问和操作这…

计算机动漫设计与游戏制作课程,有关计算机动漫与游戏制作专业介绍

原标题&#xff1a;有关计算机动漫与游戏制作专业介绍 鉴于目前想要从事动漫与游戏制作专业的人很多&#xff0c;但是很多人都对这个专业没有太深的理解&#xff0c;在这里我就简单的对计算机动漫与游戏制作专业介绍一下。 对于计算机动漫与游戏制作这个专业&#xff0c;其实内…

计算机动漫设计VR主要学什么,动漫设计专业学什么 要学什么软件

动漫设计专业学什么 要学什么软件2019-05-28 14:00:23文/叶丹 动漫设计专业主要学影视动画设计制作、游戏角色进阶设计合成、广告特效动画设计、影视后期特技、卡通造型数字手绘、交互式3D场景游戏设计、影视剪辑输出与包装等。 动漫设计专业课程 基础素描、基础色彩、Maya、3D…

基于java的动漫网站设计

动漫网站的设计主要实现动漫信息查询模块。此系统采用MVC设计模式&#xff0c;系统主要包括动漫信息展示&#xff0c;按照类别管理动漫信息、在线播放下载等模块。此系统主要是为了迎合广大动漫爱好者了解动漫信息的需求&#xff0c;避免他们盲目在互联网上寻求动漫&#xff0c…

计算机动漫设计和游戏设计需要什么基础,学动漫游戏设计需要什么样的电脑配置?...

原标题&#xff1a;学动漫游戏设计需要什么样的电脑配置&#xff1f; 这几年动漫游戏产业的发展和扩张&#xff0c;不仅得到了大多数年轻人的最爱&#xff0c;很多已经成家立业的中年人也对此充满兴趣。其中的优秀作品不仅能够让大家在忙碌之余得到些许的轻松&#xff0c;同时也…

优漫动游:游戏ui设计包括什么?

游戏UI设计是游戏开发过程中非常重要的一部分&#xff0c;涉及到游戏中各种交互元素的设计。下面将介绍游戏UI设计包括哪些内容。 ​ 主菜单界面设计   主菜单是游戏的入口&#xff0c;主菜单界面设计需要具有视觉冲击力&#xff0c;吸引玩家的眼球&#xff0c;让玩家可以方…

网页设计作业 / 动漫网页设计作业,网页设计作业 / 动漫网页设计成品,网页设计作业 / 动漫网页设计成品模板下载

HTML5期末大作业&#xff1a;动漫网站设计——动漫樱桃小丸子(5页) HTMLCSSJavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈…