iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >Java经典算法题有哪些
  • 650
分享到

Java经典算法题有哪些

2023-06-17 06:06:34 650人浏览 八月长安
摘要

这篇文章主要介绍“Java经典算法题有哪些”,在日常操作中,相信很多人在Java经典算法题有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java经典算法题有哪些”的疑惑有所帮助!接下来,请跟着小编一起来

这篇文章主要介绍“Java经典算法题有哪些”,在日常操作中,相信很多人在Java经典算法题有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java经典算法题有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

题目一:

Java经典算法题有哪些

public class testClockwiseOutput {     //顺时针打印一个矩阵         @Test     public void test(){         int[][] num = new int[100][100];         int n = 4;         int count =1;                 for(int i=0;i<n;i++){             for(int j =0;j<n;j++){                 num[i][j]=count++;             }         }                 output(num,0,n-1);     }         public void output(int[][] num,int start,int end){         if(start>=end || end<=0)return;         for(int i=start;i<=end;i++){             System.out.println(num[start][i]);         }         for(int i=start+1;i<=end;i++){             System.out.println(num[i][end]);         }         for(int i=end-1;i>=start;i--){             System.out.println(num[end][i]);         }         for(int i=end-1;i>start;i--){             System.out.println(num[i][start]);         }         output(num,start+1,end-1);     } }

题目二:

给出一个排序好的数组和一个数,求数组中连续元素的和等于所给数的子数组

//给出一个排序好的数组和一个数,求数组中连续元素的和等于所给数的子数组         @Test     public void test(){         int[] num = {1,2,2,3,4,5,6,7,8,9};         int sum = 7;         findSum(num,sum);     }         public void findSum(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();             }         }     }

题目三:

Java经典算法题有哪些

//字符数组组成的所有字符串         @Test     public void test(){         //char[] cs = {'a','b','c','d','e'};                char[] cs = {'a','b','c'};            int length = cs.length;                recursionSwap(cs,0,length);     }         public void swap(char[] cs,int index1,int index2){         char temp = cs[index1];         cs[index1]=cs[index2];         cs[index2]=temp;            }         public void recursionSwap(char[] cs,int start,int length){         if(start>=length-1){             print(cs);             return;         }         for(int i=start;i<length;i++){             swap(cs,start,i);             recursionSwap(cs,start+1,length);                swap(cs,start,i);         }     }         public void print(char[] cs){         for(int i=0;i<cs.length;i++){             System.out.print(cs[i]);         }         System.out.println();     }

题目四:

Java经典算法题有哪些

//数组组成的最小数         @Test     public void test(){         int[] num={1,5,9,13,442,44,6,21,211};         qsort(num,0,num.length-1);         System.out.println(Arrays.toString(num));     }         public void qsort(int[] num,int left,int right){         if(left<right){             int partition = partition(num,left,right);             qsort(num,left,partition-1);             qsort(num,partition+1,right);         }        }         public int partition(int[] num,int left,int right){         int partition = num[left];         while(left<right){             while((num[right]==partition || isMBigerThanN(num,num[right],partition)) && left<right){                 right--;             }                        swap(num,left,right);                while((num[left]==partition || isMBigerThanN(num,partition,num[left])) && left<right){                 left++;             }             swap(num,left,right);                }                 return left;     }         public void swap(int[] num,int m,int n){         int temp = num[m];         num[m]=num[n];         num[n]=temp;     }         public boolean isMBigerThanN(int[] num,int m,int n){         String num1 = String.valueOf(m);         String num2 = String.valueOf(n);                 int temp1 = Integer.parseInt(num1+num2);         int temp2 = Integer.parseInt(num2+num1);                 if(temp1>temp2){             return true;         }         else{             return false;         }     }

题目五:

Java经典算法题有哪些

//子数组***和     @Test     public void test(){         int[] num = {1,-2,3,10,-4,7,2,-5};         //int[] num = {1,-2,3,10,-4,10,2,-5};         System.out.println(maxSum(num));     }         public int maxSum(int[] num){         int curSum = 0;         int curMaxSum = -99999999;         int start = 0;         int end = 0;                 for(int i=0;i<num.length;i++){             if(curSum<=0){                 curSum = num[i];                 start = i;             }             else{                 curSum += num[i];             }             if(curSum>curMaxSum){                 curMaxSum = curSum;                        end = i;             }         }            for(int i = start;i<=end;i++){             System.out.println(num[i]);         }         return curMaxSum;     }

题目六:

Java经典算法题有哪些

public class testMinStack {     //自定义栈,min函数得到当前最小值         @Test     public void test(){         MinStack ms = new MinStack();         ms.push(5);         System.out.println(ms.min());         ms.push(6);         ms.push(2);         ms.push(1);         System.out.println(ms.min());         ms.pop();         System.out.println(ms.min());         ms.pop();         System.out.println(ms.min());             } }  class MinStack{     private Stack<Integer> minStack = new Stack<Integer>();        private Stack<Integer> stack = new Stack<Integer>();         public int pop(){         minStack.pop();                return stack.pop();     }         public void push(int num){         if(minStack.size()<=0){             minStack.push(num);             return;         }         Integer min = minStack.lastElement();         if(num<min){             minStack.push(num);         }         else{             minStack.push(min);         }         stack.push(num);     }         public int min(){         if(minStack.size()<=0){             return -1;         }         return minStack.lastElement();     } }

题目七:

Java经典算法题有哪些

//找出数组中出现次数大于一半的数         @Test     public void test(){         int[] num = {1,2,2,2,2,2,2,4,2,4,6,4,2,6,8,2,7,7};         System.out.println(moreThanHaft(num));     }         public int moreThanHaft(int[] num){                int result = -1;         int times = 0;         for(int i=0;i<num.length;i++){             if(times==0){                 result = num[i];                 times++;             }             else{                 if(num[i]==result){                     times++;                 }                 else{                     times--;                 }             }         }                 return result;     }

题目八:

Java经典算法题有哪些

//判断一个数组是否是另一个栈的出栈顺序         @Test     public void test(){         int[] num = {1,2,3,4,5};         //int[] num1={1,2,3,5,4};         int[] num2={2,1,5,3,4};         Stack<Integer> s1 = new Stack<Integer>();         Stack<Integer> s2 = new Stack<Integer>();         for(int i=0;i<5;i++){             s2.push(num2[i]);         }                 System.out.println(testOrder(num,s1,s2));     }         public boolean testOrder(int[] num,Stack<Integer> s1,Stack<Integer> s2){         int length = num.length;                for(int i=0;i<length;i++){             s1.push(num[i]);             int s2Num = s2.lastElement();             if(s2Num==s1.lastElement().intValue()){                 s1.pop();                 s2.pop();             }         }         while(!s1.isEmpty()){             if(!s1.pop().equals(s2.pop())){                 return false;             }         }         return true;     }  复制代码

题目九:

Java经典算法题有哪些

//从扑克牌抽5张牌,0可以为任意数,判断是否是顺子         @Test     public void test(){         int[] num = {0,1,5,3,2};         System.out.println(check(num));     }         public boolean check(int[] num){         //0-13         int[] pai = new int[14];         for(int n : num){             pai[n]+=1;         }         qsort(num,0,num.length-1);         int count = pai[0];         int start = 0;         if(num[0]==0){             start=num[1];         }         else{             start=num[0];         }         for(int i = start;i<=start+5;i++){             if(pai[i]>1)return false;             count += pai[i];         }         if(count == 5)return true;         else return false;             }         public void qsort(int[] num,int left,int right){         if(left<right){             int partition = partition(num,left,right);             qsort(num,left,partition-1);             qsort(num,partition+1,right);         }     }         public int partition(int[] num,int left,int right){         int partition = num[left];         while(left<right){             while(left<right && num[right]>=partition){                 right--;             }             swap(num,left,right);             while(left<right && num[left]<=partition){                 left++;             }             swap(num,left,right);         }                 return left;            }         public void swap(int[] num,int m,int n){         int temp = num[m];         num[m]=num[n];         num[n]=temp;     }

题目十:

Java经典算法题有哪些

//输出第k个丑数(因子只有2,3,5)         @Test     public void test(){         findUglyNum(8);     }         public void findUglyNum(int index){         int[] num = new int[index];         int next = 1;         num[0]=1;         int index2=0;         int index3=0;         int index5=0;             while(next<index){             int num2 = num[index2]*2;             int num3 = num[index3]*3;             int num5 = num[index5]*5;                         num[next] = getSuitable(num2,num3,num5);                         while(num[index2]*2<=num[next]){                 index2++;             }             while(num[index3]*3<=num[next]){                 index3++;             }             while(num[index5]*5<=num[next]){                 index5++;             }                            next++;                     }         System.out.println(num[index-1]);     }         public int getSuitable(int num2,int num3,int num5){         int s = num2;         if(num3<s){             s = num3;         }         if(num5<s){             s = num5;         }         return s;     }

到此,关于“Java经典算法题有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Java经典算法题有哪些

本文链接: https://www.lsjlt.com/news/287539.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java经典算法题有哪些
    这篇文章主要介绍“Java经典算法题有哪些”,在日常操作中,相信很多人在Java经典算法题有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java经典算法题有哪些”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-17
  • Java虚拟机经典问题有哪些
    本篇内容介绍了“Java虚拟机经典问题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java 是如何在保证可移植性的前提下提供高执行效...
    99+
    2023-06-04
  • 云计算的经典面试题有哪些
    这篇文章主要介绍“云计算的经典面试题有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“云计算的经典面试题有哪些”文章能帮助大家解决问题。1)使用云计算有哪些优点?使用云计算有下列优点:a)备份数据...
    99+
    2023-06-27
  • 经典的进程调度算法有哪些
    这篇文章主要介绍“经典的进程调度算法有哪些”,在日常操作中,相信很多人在经典的进程调度算法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”经典的进程调度算法有哪些”的疑惑...
    99+
    2024-04-02
  • Python经典面试题有哪些
    这篇文章主要讲解了“Python经典面试题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python经典面试题有哪些”吧!Python面试题(一)之交换变量值平时时不时会面面实习生,大...
    99+
    2023-06-02
  • 经典MySQL面试题有哪些
    这篇文章主要讲解了“经典MySQL面试题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“经典MySQL面试题有哪些”吧!1.数据库三范式是什么第一范式(...
    99+
    2024-04-02
  • Redis经典面试题有哪些
    本篇内容介绍了“Redis经典面试题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、什么是Redis?简述它的优缺点?Redis本质...
    99+
    2023-06-02
  • PHP经典面试题有哪些
    这篇文章给大家分享的是有关PHP经典面试题有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.合并两个数组有几种方式,试比较它们的异同方式:array_merge()’+’array_merge_recurs...
    99+
    2023-06-15
  • Linux经典面试题有哪些
    这篇文章主要介绍“Linux经典面试题有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux经典面试题有哪些”文章能帮助大家解决问题。1、介绍下自己?(几乎每家公司首先都会让你做个自我介绍,...
    99+
    2023-06-16
  • LeetCode经典算法题解,Java实现版!
    在程序员的职业生涯中,算法是一个非常重要的领域。而LeetCode作为一个非常流行的在线编程平台,它提供了大量的算法题目,帮助程序员们提高算法能力。在这篇文章中,我们将为你介绍一些经典的算法题目,并提供Java实现版的解题思路和代码。 1...
    99+
    2023-09-01
    二维码 load leetcode
  • CSS的经典面试题有哪些
    这篇“CSS的经典面试题有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“CSS的经典面试题有哪些”文章吧。1、 介绍一下...
    99+
    2023-06-27
  • JAVA入门经典实例有哪些
    小编给大家分享一下JAVA入门经典实例有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)...
    99+
    2023-05-30
    java
  • java中经典的JVM锁有哪些
    本篇内容介绍了“java中经典的JVM锁有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!synchronized synchr...
    99+
    2023-06-17
  • Python经典面试问答题有哪些
    本文小编为大家详细介绍“Python经典面试问答题有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python经典面试问答题有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识...
    99+
    2024-04-02
  • JavaScript错误的经典问题有哪些
    这篇文章主要介绍“JavaScript错误的经典问题有哪些”,在日常操作中,相信很多人在JavaScript错误的经典问题有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript错误的经典问题...
    99+
    2023-06-27
  • Shell脚本经典用法有哪些
    这篇文章主要为大家展示了“Shell脚本经典用法有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Shell脚本经典用法有哪些”这篇文章吧。一、条件选择、判断1、条件选择if(1)用法格式if...
    99+
    2023-06-15
  • javascript经典函数用法有哪些
    这篇文章主要为大家展示了“javascript经典函数用法有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascript经典函数用法有哪些”这篇文章吧。1。字符串替代方法。 ...
    99+
    2023-06-03
  • shell命令经典面试问题有哪些
    这篇文章主要介绍了shell命令经典面试问题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。文本分析取出password中shell出现的次数第一种方法结果: ...
    99+
    2023-06-09
  • Redis经典面试题及答案有哪些
    这篇文章主要讲解了“Redis经典面试题及答案有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis经典面试题及答案有哪些”吧! ...
    99+
    2023-03-09
    redis
  • JavaScript中有哪些递归经典案例题
    这篇文章主要为大家展示了“JavaScript中有哪些递归经典案例题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript中有哪些递归经典案例题”这篇文章吧。什么是递归,它是如何工作...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作