编程之美
来源:互联网 发布:淘宝上回收手机可靠吗 编辑:程序博客网 时间:2024/06/02 05:27
问题导读:
给你一副杂乱的扑克牌(不包括大小王),任意从其中抽出一张牌,怎样用最简单的方法来知道抽出的是1~13中的那一张?(不要求知道花色)
注:类似题目
解决方案:
package Chapter1;import java.util.HashMap;import java.util.Map;import java.util.Map.Entry;public class Func_1_5 { /* 给你一副杂乱的扑克牌(不包括大小王),任意从其中抽出一张牌,怎样用最简单的方法来知道抽出的是1~13中的那一张?(不要求知道花色) */ int func1(int []arr, int flag) { // 利用 map,统计每张扑克牌出现的次数,最后找出次数为3的扑克牌 Map<Integer, Integer> map = new HashMap<>(); for (int a : arr) { if (map.containsKey(a)) { map.put(a, map.get(a) + 1); } else { map.put(a, 1); } } for (Entry<Integer, Integer> e : map.entrySet()) { if (e.getValue() == flag) return e.getKey(); } return 0; } Map<Integer, Integer> func2(int []arr, int flag) { // 不储存满状态的元素 Map<Integer, Integer> map = new HashMap<>(); for (int a : arr) { if (map.containsKey(a)) { map.put(a, map.get(a) + 1); if (map.get(a) == flag) { map.remove(a); // 满状态,直接删除 } } else { map.put(a, 1); } } return map; } int func3(int []arr) { int res = 0; // 自异或 为 0 // 和0异或 为 本身 for (int a : arr) { res ^= a; } return res; } int func4(int []arr, int total) { // 原始和 - 剩余和 int sum = 0; for (int a : arr) { sum += a; } return total - sum; } public static void main(String []args) { Func_1_5 f = new Func_1_5(); int []arr = new int[13*4 -1]; for (int i = 1; i <= arr.length; i++) { arr[i-1] = i%13 == 0 ? 13 : i%13; } int res_1 = f.func1(arr, 3); System.out.println("res_1 : " + res_1); Map<Integer, Integer> map = f.func2(arr, 4); for(Entry<Integer, Integer> e : map.entrySet()) { System.out.println("res_2 : " + e.getKey()); } int res_3 = f.func3(arr); System.out.println("res_3 : " + res_3); int res_4 = f.func4(arr, 13 * 7 * 4); System.out.println("res_4 : " + res_4); }}
阅读全文
0 0
- 推荐《编程之美》
- 编程之美 - 序
- 品味《编程之美》
- 编程之美???
- 编程之美
- 编程之美
- 编程之美有感
- 编程之美
- 编程之美摘录
- 编程之美
- 编程之美总结
- 编程之美2.21
- 编程之美
- 编程之美-前言
- 编程之美
- 编程之美1
- 《编程之美》读书笔记
- 编程之美3.1
- C学习笔记20170820
- Python网络数据采集——BeautifulSoup
- HDU6152-Friend-Graph
- c++类的简单实现
- Codeforces 780G Andryusha and Nervous Barriers
- 编程之美
- es6
- 网络爬虫浅析
- Tesseract-OCR 从编译到集成
- HDU 6153 A Secret(扩展kmp模板题)
- JEESZ RestFul服务介绍
- sqlite3数据库存取和取出图片
- Ubuntu中vsftpd实现不同用户不同权限
- [LintCode 451] 两两交换链表中的节点(Python)