当前位置:网站首页>[daily problem insight] Li Kou - the 280th weekly match (I really didn't know it could be so simple to solve other people's problems)
[daily problem insight] Li Kou - the 280th weekly match (I really didn't know it could be so simple to solve other people's problems)
2022-07-05 02:37:00 【Code Fox】
️ Winter vacation xinkeng —— Code Fox's daily notes
The winter vacation is about to expire
6007. The maximum sum of the array -Hard- The first 280 Weekly competition questions 4
Give you a length of n
Array of integers for nums
And an integer numSlots
, Satisfy 2 * numSlots >= n
. All in all numSlots
Baskets , The number is 1
To numSlots
.
You need to put all n
Divide the whole number into these baskets , And each basket at most Yes 2 It's an integer . Of a distribution scheme With and Defined as the number of each number and its basket Bitwise and operation The sum of the results .
- For example , The digital
[1, 3]
Put it in the basket *1
* in ,[4, 6]
Put it in the basket *2
* in , The sum of this scheme is(1 AND ***1\***) + (3 AND ***1\***) + (4 AND ***2***) + (6 AND ***2***) = 1 + 1 + 0 + 2 = 4
.
Please return and will nums
Put all numbers in numSlots
The largest of the baskets and .
// The solution comes from ——https://leetcode-cn.com/u/endlesscheng/
class Solution {
public int maximumANDSum(int[] nums, int numSlots) {
var ans = 0;
var f = new int[1 << (numSlots * 2)];
for (var i = 0; i < f.length; i++) {
var c = Integer.bitCount(i);
if (c >= nums.length) continue;
for (var j = 0; j < numSlots * 2; ++j) {
if ((i & (1 << j)) == 0) {
// Enumerate empty baskets j
var s = i | (1 << j);
f[s] = Math.max(f[s], f[i] + ((j / 2 + 1) & nums[c]));
ans = Math.max(ans, f[s]);
}
}
}
return ans;
}
}
6006. Take out the smallest number of magic beans -Mid- The first 280 Weekly competition questions 3
To give you one just An array of integers beans
, Each integer represents the number of magic beans in a bag .
Please... From each bag take out Some beans ( It's fine too Don't take out ), Make the rest Non empty In the bag ( namely At least also One Magic bean bag ) Number of magic beans equal . Once the magic beans are removed from the bag , You can't put it in any other bag .
Please return to where you need to take out the magic beans Minimum number .
class Solution {
public long minimumRemoval(int[] beans) {
Arrays.sort(beans);
long sum=0;
for(int i:beans){
sum+=i;
}
int n=beans.length;
if(n==1){
return 0;
}
long dp=0;
long sumF=0;
long min=Long.MAX_VALUE;
for(int i=n-1;i>=0;i--){
if(i!=n-1){
dp=(sum+sumF-(long)beans[i+1]*(long)(n-1-i));
}
else{
dp=sum;
}
sum-=beans[i];
sumF+=beans[i];
if(min>dp){
min=dp;
}
}
dp=sumF-(long)beans[0]*(long)(n);
if(min>dp){
min=dp;
}
return min;
}
}
6005. The minimum number of operands to make an array an alternating array -Mid- The first 280 Weekly competition questions 3
I'll give you a subscript from 0 Starting array nums
, The array consists of n
It's made up of four positive integers .
If the following conditions are met , The array nums
It's a Alternating array :
nums[i - 2] == nums[i]
, among2 <= i <= n - 1
.nums[i - 1] != nums[i]
, among1 <= i <= n - 1
.
In one step operation in , You can choose the subscript i
And will nums[i]
change by any Positive integer .
Returns the that makes the array an alternating array The minimum number of operands .
class Solution {
public int minimumOperations(int[] nums) {
int n=nums.length;
if(n==1){
return 0;
}
int[][] same=new int[2][2];
int[][] same2=new int[2][2];
int count=0;
int cur=0;
same=get(nums,n,2);
same2=get(nums,n,1);
int m=0;
if(same[0][1]!=same2[0][1]){
m=same[0][0]+same2[0][0];
}
m=Math.max(same2[1][0]+same[0][0],m);
m=Math.max(same2[0][0]+same[1][0],m);
return n-m;
}
int[][] get(int[] nums,int n,int k){
int count=0;
int cur=0;
Map<Integer,Integer> map=new HashMap<>();
int[][] same=new int[2][2];
for(int i=k%2;i<n;i+=2){
map.put(nums[i],map.getOrDefault(nums[i],0)+1);
}
for(Map.Entry<Integer,Integer> e:map.entrySet()){
if(e.getValue()>same[0][0]){
same[1][0]=same[0][0];
same[1][1]=same[0][1];
same[0][0]=e.getValue();
same[0][1]=e.getKey();
}
else if(e.getValue()>same[1][0]){
same[1][0]=e.getValue();
same[1][1]=e.getKey();
}
}
return same;
}
}
6004. obtain 0 The number of operations - The first 280 Weekly competition questions 1
Here are two for you non-negative Integers num1
and num2
.
Each step operation in , If num1 >= num2
, You have to use num1
reduce num2
; otherwise , You have to use num2
reduce num1
.
- for example ,
num1 = 5
Andnum2 = 4
, Should use thenum1
reducenum2
, therefore , obtainnum1 = 1
andnum2 = 4
. However , Ifnum1 = 4
Andnum2 = 5
, After one step operation , obtainnum1 = 4
andnum2 = 1
.
Return to make num1 = 0
or num2 = 0
Of Operands .
class Solution {
public int countOperations(int num1, int num2) {
int a=0;
while(num1!=0&&num2!=0){
if(num1>=num2){
a+=(num1/num2);
num1%=num2;
}
else{
a+=(num2/num1);
num2%=num1;
}
}
return a;
}
}
ending
Title source : Power button (LeetCode) link :https://leetcode-cn.com/problems
️ Focus on the author , Take you to brush the questions , Learn the most commonly used algorithm skills from simple algorithm problems ( Winter vacation every day )
️ Pay attention to the author's questions —— Simple to advanced , Let you unknowingly become a ruthless problem brushing machine , If you have any questions, please send a private letter
边栏推荐
- 打破信息茧房-我主动获取信息的方法 -#3
- Last words record
- Prometheus monitors the correct posture of redis cluster
- ASP. Net core 6 framework unveiling example demonstration [01]: initial programming experience
- Why do you understand a16z? Those who prefer Web3.0 Privacy Infrastructure: nym
- Privatization lightweight continuous integration deployment scheme -- 01 environment configuration (Part 1)
- [download white paper] does your customer relationship management (CRM) really "manage" customers?
- Last week's hot review (2.7-2.13)
- 8. Commodity management - commodity classification
- openresty ngx_lua变量操作
猜你喜欢
Pytest (4) - test case execution sequence
Open source SPL optimized report application coping endlessly
Yuan universe also "real estate"? Multiple second-hand trading websites block metauniverse keywords
LeetCode 314. Binary tree vertical order traversal - Binary Tree Series Question 6
丸子百度小程序详细配置教程,审核通过。
Scientific research: are women better than men?
【LeetCode】98. Verify the binary search tree (2 brushes of wrong questions)
Privatization lightweight continuous integration deployment scheme -- 01 environment configuration (Part 1)
Chinese natural language processing, medical, legal and other public data sets, sorting and sharing
The perfect car for successful people: BMW X7! Superior performance, excellent comfort and safety
随机推荐
Start the remedial work. Print the contents of the array using the pointer
Action News
使用druid连接MySQL数据库报类型错误
Subject 3 how to turn on the high beam diagram? Is the high beam of section 3 up or down
A label colorful navigation bar
Last words record
[技术发展-26]:新型信息与通信网络的数据安全
Learn game model 3D characters, come out to find a job?
Practice of tdengine in TCL air conditioning energy management platform
Yolov5 model training and detection
Openresty ngx Lua Execution stage
Design and implementation of campus epidemic prevention and control system based on SSM
Serious bugs with lifted/nullable conversions from int, allowing conversion from decimal
Scientific research: are women better than men?
LeetCode 314. Binary tree vertical order traversal - Binary Tree Series Question 6
Chinese natural language processing, medical, legal and other public data sets, sorting and sharing
openresty ngx_ Lua execution phase
Erreur de type de datagramme MySQL en utilisant Druid
低度酒赛道进入洗牌期,新品牌如何破局三大难题?
Design and implementation of community hospital information system