数组类,简单级别完结。。。。

不容易啊,基本都是靠百度答案。。。。

希望做过之后后面可以自己复习,自己学会这个解法

package y2019.Algorithm.array;

/**
* @ProjectName: cutter-point
* @Package: y2019.Algorithm.array
* @ClassName: CanPlaceFlowers
* @Author: xiaof
* @Description: TODO 605. Can Place Flowers
* Suppose you have a long flowerbed in which some of the plots are planted and some are not.
* However, flowers cannot be planted in adjacent plots - they would compete for water and both would die.
* Given a flowerbed (represented as an array containing 0 and 1, where 0 means empty and 1 means not empty),
* and a number n, return if n new flowers can be planted in it without violating the no-adjacent-flowers rule.
*
* 假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。
* 给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花?能则返回True,不能则返回False。
* 来源:力扣(LeetCode)
* 链接:https://leetcode-cn.com/problems/can-place-flowers
* 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
*
* Input: flowerbed = [1,0,0,0,1], n = 1
* Output: True
* @Date: 2019/7/12 8:55
* @Version: 1.0
*/
public class CanPlaceFlowers { public boolean solution(int[] flowerbed, int n) {
//判断每个花之间要有空格
int count = 0;
for(int i = 0; i < flowerbed.length && count < n; ++i) {
//判断是否是空的
if(flowerbed[i] == 0) {
//判断左右是否间隔1一个空位
int pre = i == 0 ? 0 : flowerbed[i - 1];
int next = i < flowerbed.length - 1 ? flowerbed[i + 1] : 0;
if(pre == 0 && next == 0) {
++count;
flowerbed[i] = 1;
}
}
} if(count == n) {
return true;
} else {
return false;
}
} public static void main(String args[]) {
String as[] = {"bella","label","roller"};
int[] A = {1,0,0,0,1};
int k = 1;
CanPlaceFlowers fuc = new CanPlaceFlowers();
System.out.println(fuc.solution(A, k));
}
}
package y2019.Algorithm.array;

import java.util.HashMap;
import java.util.Map; /**
* @ProjectName: cutter-point
* @Package: y2019.Algorithm.array
* @ClassName: FindPairs
* @Author: xiaof
* @Description: 532. K-diff Pairs in an Array
* Given an array of integers and an integer k, you need to find the number of unique k-diff pairs in the array.
* Here a k-diff pair is defined as an integer pair (i, j), where i and j are both numbers in the array and their absolute difference is k.
*
* Input: [3, 1, 4, 1, 5], k = 2
* Output: 2
* Explanation: There are two 2-diff pairs in the array, (1, 3) and (3, 5).
* Although we have two 1s in the input, we should only return the number of unique pairs.
*
* 给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对。这里将 k-diff 数对定义为一个整数对 (i, j),
* 其中 i 和 j 都是数组中的数字,且两数之差的绝对值是 k.
*
* 来源:力扣(LeetCode)
* 链接:https://leetcode-cn.com/problems/k-diff-pairs-in-an-array
* 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
*
* @Date: 2019/7/12 9:33
* @Version: 1.0
*/
public class FindPairs { public int solution(int[] nums, int k) { if(k < 0) {
return 0;
} //这题用类似hash的方式
Map<Integer, Integer> numMap = new HashMap();
for(int t : nums) {
if(!numMap.containsKey(t)) {
numMap.put(t, 0);
}
//出现次数
numMap.put(t, numMap.get(t) + 1);
}
//遍历查询缺失的一般
int count = 0;
//根据map中的数据进行判断,并且进行了去重
for(Map.Entry entry : numMap.entrySet()) {
//判断map中是否包含差值的数据,如果包含,还要避免是同同一对数据,剩余的个数要不能为0
if(k == 0) {
//特殊处理K为0的情况
if((int) entry.getValue() >= 2) {
++count;
}
} else if(numMap.containsKey((int) entry.getKey() + k)) {//因为是递增的,所以可以吧相同对排除掉
++count;
}
} return count;
} public static void main(String args[]) {
int[] A = {3,1,4,1,5};
int[] B = {1,2,3,4,5};
int k = -1;
FindPairs fuc = new FindPairs();
System.out.println(fuc.solution(A, k));
}
}

【LEETCODE】54、数组分类,简单级别,题目:605、532的更多相关文章

  1. 【LEETCODE】53、数组分类,简单级别,题目:989、674、1018、724、840、747

    真的感觉有点难... 这还是简单级别... 我也是醉了 package y2019.Algorithm.array; import java.math.BigDecimal; import java. ...

  2. 【LeetCode】数组-1(643)-返回规定长度k的最大子数组的平均数

    好久没有刷LeetCode了,准备重拾并坚持下去,每天刷个两小时.今天算是开始的第一天,不过出师不利,在一道很简单的题目上墨迹半天.不过还好,现在踩过的坑,应该都不会白踩,这些可能都是以后程序员路上稳 ...

  3. LeetCode:颜色分类【75】

    LeetCode:颜色分类[75] 题目描述 给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列. 此题中,我们使用整数 ...

  4. LeetCode.961-2N数组中N次重复的元素(N-Repeated Element in Size 2N Array)

    这是悦乐书的第365次更新,第393篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第227题(顺位题号是961).在大小为2N的数组A中,存在N+1个唯一元素,并且这些元 ...

  5. LeetCode~移除元素(简单)

    移除元素(简单) 1. 题目描述 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使 ...

  6. 面阿里P7,竟问这么简单的题目?

    关于作者:程序猿石头(ID: tangleithu),来自十八县贫困农村(查看我的逆袭之路),BAT某厂P7,是前大疆(无人机)技术主管,曾经也在创业公司待过,有着丰富的经验. 本文首发于微信公众号, ...

  7. LeetCode: 54. Spiral Matrix(Medium)

    1. 原题链接 https://leetcode.com/problems/spiral-matrix/description/ 2. 题目要求 给定一个二维整型数组,返回其螺旋顺序列表,例如: 最后 ...

  8. LeetCode:数组中的第K个最大元素【215】

    LeetCode:数组中的第K个最大元素[215] 题目描述 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: ...

  9. Java数据结构和算法之数组与简单排序

    一.数组于简单排序 数组 数组(array)是相同类型变量的集合,可以使用共同的名字引用它.数组可被定义为任何类型,可以是一维或多维.数组中的一个特别要素是通过下标来访问它.数组提供了一种将有联系的信 ...

随机推荐

  1. C# 读取Excel 单元格是日期格式

    原文地址:https://www.cnblogs.com/liu-xia/p/5230768.html DateTime.FromOADate(double.Parse(range.Value2.To ...

  2. 2-开发共享版APP(接入指南)-设备接入说明:快速接入

    https://www.cnblogs.com/yangfengwu/p/11249674.html 该APP安装包下载链接: http://www.mnif.cn/appapk/IotDevelop ...

  3. 《RabbitMQ 实战》读书笔记

    MQ的好处: 1.业务上接口(系统扩展性变强) 2.性能提升(同步变异步,效率提高,还方便做负载均衡) 3.技术兼容(可以连接各种不同语言的系统,作为粘合剂) 读书笔记: 1.消息队列的应用场景:系统 ...

  4. 意图Intent

    意图点击官方链接 前言 对意图Intent,学习安卓需掌握.以官方链接:http://www.android-doc.com/reference/android/content/Intent.html ...

  5. 将对象转化为数组,并且适用select下拉

    当你做element-ui的select下拉的时候数据是从后台请求,但是怎么才能将obj转成数组呢.并且后台返回的key和value中的key是要传的参数 var obj = { name: 'gab ...

  6. (四)Cisco dhcp snooping实例2-多交换机环境(DHCP服务器和DHCP客户端位于不同VLAN)

    试验拓扑 环境:dhcp server和客户端处于不同网段的情况 dhcp server的配置 no ip routing ip dhcp pool vlan27 network 172.28.27. ...

  7. MySQL各种类型实验

    实验一:整数 -- 测试一 create database test;-- 新建数据库,如果已经有了就不需要再创建了 USE test;-- 打开数据库 drop table if exists te ...

  8. 《恶魔人crybaby》豆瓣短评爬取

    作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/3159 爬虫综合大作业 选择一个热点或者你感兴趣的主题. 选择爬取的对象 ...

  9. 解决idea创建Maven项目速度慢

    idea在创建maven项目的时候会去网上自动下载需要的插件,这样就会导致项目创建后一直处于下载插件的状态中,影响开发效率 此时我们可以在创建maven骨架的时候,加入键值对来让maven调用本地的骨 ...

  10. 并发下sftp连接报错——com.jcraft.jsch.JSchException: connection is closed by foreign host

    当对单接口极限测试时,随着并发量上升,接口稳定性出现不稳定的情况,排查后台日志,发现报错在该接口调用sftp上传时出现问题(确切的是在初始化连接时失败) 原因:系统SSH终端连接数配置过小,查看虚拟机 ...