当前位置:网站首页>情侣牵手[贪心 & 抽象]
情侣牵手[贪心 & 抽象]
2022-08-04 23:36:00 【REN_林森】
前言
贪心是考察分析能力的好题,尤其是带干扰性的,即需要我们将有用信息提取,去伪存真,将问题能够抽象出来。动态规划也是一样,如果没有抽象思维提取要害信息,则定义不出状态,自然也找不到状态如何转移。当然阅读理解题/脑筋急转弯,就更需要这种抽象有用信息的能力。
一、情侣牵手

二、贪心&抽象
package everyday.hard;
// 情侣牵手。
public class MinSwapsCouples {
/* 抽象思维:其实我们并不关心1/2/3...这些位置,我们只关心特殊的相邻关系<0,1><2,3>。 那么一对特殊位置<x,y>,有2种情况。一是情侣则不管;二不是情侣,可以换走1个人,也可换走2个人。 由于我们只关心相邻位置,即把两对情侣的男生换掉,换个角度看,其实也可看成把两个女生换掉,所以我们在乎的是相邻对,而不是特别的位置。 所以,根据贪心,换1人的做法是最好的,留下一个人,就少换一次。 */
public int minSwapsCouples(int[] row) {
int cnt = 0;
for (int i = 0; i < row.length; i += 2) {
int target = (row[i] & 1) == 0 ? row[i] + 1 : row[i] - 1;
if (target == row[i + 1]) continue;
findAndSwap(row, i + 1, target);
cnt++;
}
return cnt;
}
private void findAndSwap(int[] row, int begin, int target) {
int i = begin + 1;
while (i < row.length && target != row[i]) ++i;
row[i] = row[begin];
row[begin] = target;
}
}
总结
1)多练习贪心题,锻炼分析能力 & 信息加工能力 & 信息提取与转换能力。
参考文献
[1] LeetCode 情侣牵手
边栏推荐
- 【七夕情人节特效】-- canvas实现满屏爱心
- Implementing class target method exception using proxy object execution
- OPENCV学习DAY8
- 【CVA估值训练营】财务建模指南——第一讲
- 情人节---快来学习一下程序员的专属浪漫吧
- VMware NSX 4.0 -- 网络安全虚拟化平台
- Pytorch分布式训练/多卡/多GPU训练DDP的torch.distributed.launch和torchrun
- Controller层代码这么写,简洁又优雅!
- 美团二面:Redis与MySQL双写一致性如何保证?
- 自从新来了个字节20K出来的,就见识到了什么是天花板
猜你喜欢

零基础如何入门软件测试?再到测开(小编心得)

Xiaohei leetcode surfing: 94. Inorder traversal of binary tree

uniapp horizontal tab (horizontal scrolling navigation bar) effect demo (organization)

Ab3d.PowerToys and Ab3d.DXEngine Crack

【无标题】线程三连鞭之“线程池”

【转载】kill掉垃圾进程(在资源管理器占用的情况下)

仪表板展示 | DataEase看中国:数据呈现中国资本市场

一、爬虫基本概念

资深游戏建模师告知新手,游戏场景建模师必备软件有哪些?

基于Appian低代码平台开发一个SpaceX网站
随机推荐
Since a new byte of 20K came out, I have seen what the ceiling is
C5750X7R2E105K230KA(电容器)MSP430F5249IRGCR微控制器资料
【转载】kill掉垃圾进程(在资源管理器占用的情况下)
C语言实现扫雷 附带源代码
Laravel 实现redis分布式锁
Community Sharing|Tencent Overseas Games builds game security operation capabilities based on JumpServer
2022年华数杯数学建模
未来我们还需要浏览器吗?(feat. 枫言枫语)
MySQL增删改查基础
[QNX Hypervisor 2.2用户手册]10.5 vdev ioapic
3年,从3K涨薪到20k?真是麻雀啄了牛屁股 — 雀食牛逼呀
【字符串函数内功修炼】strncpy + strncat + strncmp(二)
PID Controller Improvement Notes No. 7: Improve the anti-overshoot setting of the PID controller
被领导拒绝涨薪申请,跳槽后怒涨9.5K,这是我的心路历程
自从新来了个字节20K出来的,就见识到了什么是天花板
什么是次世代建模(附学习资料)
PID控制器改进笔记之七:改进PID控制器之防超调设定
【无标题】
[QNX Hypervisor 2.2用户手册]10.6 vdev mc146818
Service Mesh landing path