/*** 给出一个排序好的数组和一个数,求数组中连续元素的和等于所给数的子数组** @param args*/public static void main(String[] args) {int[] num = {1, 2, 2, 3, 4, 5, 6, 7, 8, 9};int sum = 7;findSum(num, sum);findSum1(num, sum);}public static void findSum(int[] num, int sum) {int sum1 = 0;for (int i = 0; i < num.length - 1; i++) {sum1 = 0;for (int j = i; j < num.length; j++) {sum1 += num[j];if (sum1 == sum) {int temp = j < num.length ? j + 1 : j;for (int c : Arrays.copyOfRange(num, i, temp)) {System.out.print(c + " ");}System.out.println();}}}}public static void findSum1(int[] num, int sum) {int left = 0;int right = 0;for (int i = 0; i < num.length; i++) {int curSum = 0;left = i;right = i;while (curSum < sum) {curSum += num[right++];}if (curSum == sum) {for (int j = left; j < right; j++) {System.out.print(num[j] + " ");}System.out.println();}}}
/*** 找出数组中出现次数最多的数字** @param args*/public static void main(String[] args) {int[] num = {1, 4, 2, 4, 6, 4, 2, 6, 8, 2, 7, 7, 7, 7};System.out.println(getNumIndex(num));}public static int getNumIndex(int[] arr) {int count = 0;int index = 0;for (int i = 0; i < arr.length - 1; i++) {int temp = 1;for (int b = i + 1; b < arr.length; b++) {if (arr[i] == arr[b]) {temp++;}}if (temp > count) {count = temp;index = i;}}return arr[index];}
/*** 通过4个参数:一个起始数字、一个结束数字、一个数字间隔、一个数字;要求动态实现数字范围。参数如:* 起始数字0、结束数字10、间隔1,要求输出字符串数组:* ["0-1", "1-2", "2-3", "3-4", "4-5", "5-6", "6-7", "7-8", "8-9", "9-10"]* <p>* 起始数字10、结束数字50、间隔5,要求输出字符串数组:* ["10-15", "15-20", "20-25", "25-30", "30-35", "35-40", "40-45", "45-50"]* <p>* 方法传入以上3个参数实现数组输出。* 通过输入第4个数字参数,可以输出此参数在以上数组中的位置,并输出。* <p>* 如输出的数组为:* ["10-15", "15-20", "20-25", "25-30", "30-35", "35-40", "40-45", "45-50"]* <p>* 传入的数字参数为:37.51,输出该数组所在的范围:"35-40",如果不存在则返回null** @param args*/public static void main(String[] args) {List<String> arr = getArr(10, 56, 5);System.out.println(arr);System.out.println(getArrIndex(arr, 23.321));}/*** 获取指定数字在数组中那个区间的下标*/public static String getArrIndex(List<String> gapList, double num) {String indexStr = null;for (int i = 0; i < gapList.size(); i++) {String[] split = gapList.get(i).split("-");double a = Double.parseDouble(split[0]);double b = Double.parseDouble(split[1]);if (num > a && num <= b) {indexStr = gapList.get(i);break;}}return indexStr;}/*** 获取数组*/public static List<String> getArr(int start, int end, int gap) {List<String> strList = new ArrayList<>();int num = 0;for (int i = start; i + gap <= end; ) {strList.add(i + "-" + (i += gap));num = i;}if ((end - num) > 0) {strList.add(num + "-" + end);}return strList;}

java 算法练习题相关推荐

  1. java算法学不会_怪不得我学不会算法,原来是姿势不对!

    大家好,今天给大家推荐一个算法可视化网站. 我们都知道,在人体的直接感官体验上,动画与图形相对于文字代码往往能带来更有冲击感的视觉效果,也更容易加深大脑对某项事物的认知程度. 而像算法这类,拥有完整逻 ...

  2. leetcode探索专题中的初级算法练习题(python代码+解题思路)

    本文记录leetcode探索专题中的初级算法练习题,附python实现代码&解题思路,做题过程不免查阅网络资料,侵删~如有错误,欢迎指正交流! 目录 专题一:数组: 26.从排序数组中删除重复 ...

  3. 暑期集训2:ACM基础算法 练习题G:POJ - 1298

    2018学校暑期集训第二天--ACM基础算法 练习题G  --  POJ - 1298 The Hardest Problem Ever Julius Caesar lived in a time o ...

  4. 暑期集训2:ACM基础算法 练习题C:CF-1008A

    2018学校暑期集训第二天--ACM基础算法 练习题A  --   CodeForces - 1008A Romaji Vitya has just started learning Berlanes ...

  5. 暑期集训2:ACM基础算法 练习题B:CF-1008B

    2018学校暑期集训第二天--ACM基础算法 练习题B  --   CodeForces - 1008B Turn the Rectangles There are nn rectangles in ...

  6. 暑期集训2:ACM基础算法 练习题A:CF-1008C

    2018学校暑期集训第二天--ACM基础算法 练习题A  --  CodeForces - 1008C Reorder the Array You are given an array of inte ...

  7. java算法----排序----(6)希尔排序(最小增量排序)

    1 package log; 2 3 public class Test4 { 4 5 /** 6 * java算法---希尔排序(最小增量排序) 7 * 8 * @param args 9 */ 1 ...

  8. 希尔排序的java算法_Java算法系列篇 【希尔排序】

    什么? 搞Java不会算法? 由于个人兴趣原因以及工作所需,最近了解Java算法的相关案例 及时分享 感兴趣的欢迎交流 希尔排序 描述: 基本思想:先将整个待排序的记录序列分割成为若干子序列分别进行直 ...

  9. 1.1.10 从二分查找BinarySearch开启算法学习之路---《java算法第四版》

    文章目录 0.前言 1.功能 2.示例 有两个名单tinyW.txt和tinyT.txt,将tinyT.txt名单中不在tinyW.txt的数据打印出来 ① 实现原理 ② 实现代码 ③ 性能分析 0. ...

最新文章

  1. pyqt label 设值时会进行加法_飞桨与PyQt的碰撞,图形化目标检测So Easy
  2. 【聊透SpringMVC】java找不到指定文件
  3. 七种Vue3传值方式
  4. 网络研讨室_即将举行的网络研讨会:调试生产中Java的5种最佳实践
  5. 高嘌呤食物搜索引擎_“高嘌呤”的食物已发现,尿酸高的人,要尽量挑着吃!...
  6. 开源、快速、高精度的椭圆检测—你值得拥有!
  7. Windows vpn 远程桌面 使用快捷键
  8. 【深度优先搜索】计蒜客:方程的解数
  9. Spark源码分析之Spark Shell(下)
  10. Java面试中如何介绍自己的项目经验?
  11. Java 大白话讲解设计模式之 -- 建造者(Builder)模式
  12. rational rose mysql_用Rational Rose逆向工程(java)生成类图(教程和错误解决)
  13. 计算机网络适配器高级属性,右击我的电脑——属性——设备管理器——1394网络适配器下面那个选项右击属性——高级——大量传送减负——...
  14. [转] 全套汽车标志,好不容易找到的哦!
  15. npm 卡住 type-fest@^0.20.2 问题解决
  16. 国外主流广告联盟大推荐
  17. 剑指 Offer 05. 替换空格无标题(正则表达式)
  18. TensorFlow 高维tenso常用工具函数
  19. python数据分析要求高性能计算机_Python数据分析初体验,需要解答的三大问题!...
  20. 二分法求函数的零点(二分不适合不变号零点的情况)

热门文章

  1. jmeter mysql plugin_jmeter连接mysql遇到的问题
  2. python爬虫requestsget_精讲Python中的requests方法
  3. python爬虫实验报告_python爬虫实验
  4. PTA 基础编程题目集 7-21 求特殊方程的正整数解 C语言
  5. 【c语言|Python】求一元二次方程ax^2+bx+c=0的根
  6. 怎么使图表居中显示_文字怎么排版又精美又好看?
  7. 遗传算法 python包_遗传算法 (Genetic Algorithm)
  8. 降低函数之间的耦合度
  9. Java基础班学习笔记(8)
  10. 第七章——DMVs和DMFs(2)——用DMV和DMF监控索引性能