2022-12-16 leetcode与蓝桥刷题情况
一、leetcode题目
1.构成特定和需要添加的最少元素
题目描述
给你一个整数数组 nums
,和两个整数 limit 与 goal
。数组 nums
有一条重要属性:abs(nums[i]) <= limit
。
返回使数组元素总和等于 goal 所需要向数组中添加的 最少元素数量 ,添加元素 不应改变 数组中 abs(nums[i]) <= limit
这一属性。
注意,如果 x >= 0
,那么 abs(x)
等于 x
;否则,等于 -x
。
2.测试用例
输入:
nums = [1,-1,1], limit = 3, goal = -4
nums = [1,-10,9,1], limit = 100, goal = 0
输出:
2
1
解释:
可以将 -2 和 -3 添加到数组中,数组的元素总和变为 1 - 1 + 1 - 2 - 3 = -4 。
提示
- 1<=nums.length<=1051 <= nums.length <= 10^51<=nums.length<=105
- 1<=limit<=1061 <= limit <= 10^61<=limit<=106
- -limit <= nums[i] <= limit
- −109<=goal<=109-10^9 <= goal <= 10^9−109<=goal<=109
3.思路
贪心思想吧,在为达到目标值时,一直取使能加上的数abs(add)
为最大值,直到不需要添加的值为最大值。即是总需数/单次的最大值且向上取整。
4.算法实现
class Solution {public int minElements(int[] nums, int limit, int goal) {long sum = 0;for(int num : nums){sum += num;}return (int)((Math.abs(sum - goal) + limit - 1) / limit); }
}
二、蓝桥题目
1.小猪存钱罐
接下来有 NNN 行:第 i+1i+1i+1 行包括一个整数 xx,表示第 iii 个存钱罐对应的钥匙放置在了第 xxx 个存钱罐中。
输出描述
输出一个整数,表示能打开所有存钱罐的情况下,需要破坏的存钱罐的最少数量。
2.测试用例
输入:
4
2
1
2
4
输出:
2
3.思路
把所有存钱罐构建城多个有向图,最后返回有多少个有向图,此处认为并查集最好。
4.算法实现
import java.util.*;
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);//在此输入您的代码...int n = scan.nextInt();int[] f = new int[n+1];for(int i = 0; i < f.length; i++){f[i] = i;}for(int i = 1; i <= n; i++){union(f, i, scan.nextInt());}HashSet<Integer> set = new HashSet<>();for (int j : f) {set.add(j);}System.out.println(set.size()-1);scan.close();}private static void union(int[] f, int a, int b){f[find(f, a)] = find(f, f[b]); }private static int find(int[] f, int a){if(f[a] != a) f[a] = find(f, f[a]);return f[a];}
}
最后悄悄话,没想到离校了,还需要为了学校的事情,忙的昏头转向的,等这段时间过完看看能不能提升点刷题质量。
2022-12-16 leetcode与蓝桥刷题情况相关推荐
- _signature、X-Bogus、msToken生成【2022.12.16】全站通用X-Bogus
本文以教学为基准.本文提供的可操作性不得用于任何商业用途和违法违规场景. 本人对任何原因在使用本人中提供的代码和策略时可能对用户自己或他人造成的任何形式的损失和伤害不承担责任. 包含关注,点赞等 没露 ...
- LeetCode:数组刷题(17道经典题目)
LeetCode 数组刷题(17道经典题目) 本文带来的是以数组为主题的经典题目,主要实现是C++,部分题目也用Python实现了. 704. 二分查找 35.搜索插入位置 34. 在排序数组中查找元 ...
- 【leetcode慢速刷题记录】1. 两数之和
文章目录 前言 一.题目 二.方法 1.暴力破解 2.哈希表 其他一些总结 (1)关于unordered_map 前言 经典面试题,其实比较简单,但鉴于刷题一遍容易忘,还是记录一下. 一.题目 二.方 ...
- 力扣(LeetCode)打卡刷题交流计划(长期维护)
前言 忙忙活活暑期过去了一半,在即将升学的日子里,打算干点什么东西,由于实力以及经验的欠缺没有创群和大家讨论,但我更喜欢以更实在的方式--能作点什么--和大家一起从0打开力扣LeetCode, 对,没 ...
- leetcode 高薪_LeetCode刷题实战69:x 的平方根
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
- Leetcode按Tag刷题
按照Leetcode的Tag来刷题,从easy到hard刷题 关于如何让Leetcode按难易程度排序,可按以下步骤: 1. 进入Leetcode后,点击code 2.点击code后,可查看所有题目, ...
- 力扣(LeetCode)怎么刷题,以排序算法为例
掌握 LeetCode 刷题方法再开始刷题,属于磨刀不误砍柴工.掌握正确方法是非常重要的. 如果你在刷题的时候发现怎么也写不出来,别担心,这是正常的.如果你还发现,之前明明刷过的题,过段时间再做的时候 ...
- IDEA LeetCode力扣刷题插件 中文类名 模板
在用idea力扣插件刷题时,用中文作为类名会出现空格或者其他符号,总所周知,变量名和类名是不能出现空格和其他符号的,在我查阅了官方文档后,发现模板的工具类是继承了Stringutils的,所以在代码模 ...
- LeetCode按知识点刷题,额外附带题解
刷题顺序转自:ACM金牌选手整理的[LeetCode刷题顺序]_清澈不在远方-CSDN博客 题解为本人自刷 数据结构 数组&双指针 LeetCode 1. 两数之和 /*** 给定一个整数数组 ...
最新文章
- 这组动画完美演绎了一个程序员从接手新项目到交货的复杂心情
- Nginx代理、负载均衡
- gpu programming guide for g80(dx9)
- 英特尔物联网产业的布局中,优势和劣势都在哪?
- Bye Bye Embed-再见了Embed,符合web标准的媒体播放器代码
- mysql Error 1045(28000)
- vue+layui获取CheckBox的值
- php 主进程子进程,PHP中的子进程的任何等价物?
- 鲲鹏云实验-Python+Jupyter机器学习基础环境
- html+css+js实现网页拼图游戏
- Angular官方教程采坑
- Smarty3——foreach
- 3.微服务:从设计到部署 --- 进程间通信
- 微信小程序--音乐播放器
- 为什么 PSP22 对 Polkadot 生态系统很重要
- python直方图解释_python直方图1 lin
- 如果域名被劫持该怎么办?有什么应对方法?
- 安装wordpress时Error establishing a database connection
- iOS - 距离传感器
- 恋爱日记、告白、表白、纪念、情侣、表白墙源码。