栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java普通算法题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java普通算法题

题目连接
未必是最优解法,有些题目特意避开了使用Java的API,尽量挑战一下自己

package algorithm;

import com.alibaba.druid.sql.visitor.functions.Bin;
import org.junit.Test;
import java.util.*;

import static java.lang.Math.*;

public class Easy {

    //1.no use for,while,if and then sum the 1,2,...n 等差求和
    public static int  sum(int n){
        return n*(n+1)/2;
    }

    //2.递归求乘法 System.out.println(multiply(100,2));
    public static int multiply(int a,int b){
        if(a-->0)
            return b+multiply(a,b);
        else
            return 0;
    }

    //3.斐波拉契  0+1+1+2+3
    public static int Feibolaqi(int n){
        if(n>2)
            return Feibolaqi(n-2)+Feibolaqi(n-1);
        else if(n==1)
            return 1;
        else if(n==0)
            return 0;
        else
            return -1;
    }

    //4.n的第k个因子
    public static int getK(int n,int k){
        int []ny=new int[n];
        int x=0;
        for(int i=1;i=k?ny[k-1]:-1;
    }

    //5统计a2+b2=c2,且1<=a,b,c<=n的满足abc的三元组的个数
    public static ArrayList CountTriples(){
        int i=0;
        ArrayLists=new ArrayList<>();
        int n=new Scanner(System.in).nextInt();
        for(int a=1;anums[i]){
                min=nums[i];
            }
            if(maxmax){
                        max=area;
                        maxpoint[0]=points[i];
                        maxpoint[1]=points[j];
                        maxpoint[2]=points[h];
                    }
                }
            }
        }
        System.out.println("max="+max);
        System.out.println("点集为{"+maxpoint[0][0]+","+maxpoint[0][1]+"},{"+maxpoint[1][0]+","+maxpoint[1][1]
        +"},{"+maxpoint[2][0]+","+maxpoint[2][1]+"}");
    }

    //8.给你两个整数,n和start。数组nums定义为:nums[i] = start + 2*i(下标从 0 开始)
    // 且 n == nums.length。请返回 nums中所有元素按位异或 X O R XORXOR 后得到的结果。

    public static void xorOperator(){
        int n=40;int start=1;
        int[]nums=new int[n];
        for(int  i=0;i0){
            a=n%10;
            n/=10;
            mul*=a;
            sum+=a;
        }
        System.out.println("mul="+mul+" sum="+sum);
    }

    //10.给你一个整数数组 nums,请你返回其中 位数 为 偶数 的数字的个数。
    public static void findNumbers(){
        int[]num={11,123,22,1,4,4123};
        int nums=0;int wei=0;
        for (int i = 0; i < num.length; i++) {
            while(num[i]>0){
                num[i]/=10;
                ++wei;
            }
            if(wei%2==0){
                ++nums;
            }
            wei=0;
        }
        System.out.println(nums);
    }

    //11.整数数组nums按升序排列,数组中的值 互不相同 。给你 旋转后 的数组nums和一个整数target,
    // 如果nums中存在这个目标值target,则返回它的下标,否则返回-1。
    public static int search(int s){
        int[]nums={1,2,3,4,5,6,7,8};
        for(int i=0;iS=new ArrayList<>();
        S.add("a");
        S.add("b");
        S.add("q");
        for(int i=0;ilist=new ArrayList<>();
        if(n==0){
            System.out.println('0');
        }else {
            while (n > 0) {
                switch (n % 16) {
                    case 10: {
                        list.add("a");
                    }
                    case 11: {
                        list.add("b");
                    }

                    case 12: {
                        list.add("c");
                    }

                    case 13: {
                        list.add("d");
                    }
                    case 14: {
                        list.add("e");
                    }
                    case 15: {
                        list.add("f");
                    }
                    default: {
                        list.add(n % 16 + "");
                    }
                }
                n /= 16;
            }
            list.add("0x");
        }
        for(int i=list.size()-1;i>=0;i--){
            System.out.print(list.get(i));
        }
    }
    
    @Test
    public void getAns(){
        int h=0;
        int[]nums={1,2,3,4,5,6};
        int[]ans=new int[nums.length*2];
        for(int i=0;i<2;i++){
            for(int j=0+i*nums.length;jmap=new HashMap<>();
        for(int i=0;i> entries = map.entrySet();
        Iterator> iterator = entries.iterator();
        Map.Entry next=iterator.next();
        for(int i=0; next!=null;i+=2){
            nums[i]=next.getKey();
            nums[i+1]=next.getValue();
            if(iterator.hasNext()){
            next=iterator.next();
            }
            else
                break;
        }
        for (int sortnum : nums) {
            System.out.println(sortnum);
        }
    }
    
    @Test
    public void showTenbase(){
        int n=3;
        int start=1;
        while(startlist=new ArrayList<>();
        for (int num : nums) {
            list.add(num);
        }
        Collections.sort(list);
        for (Integer integer : list) {
            System.out.println(integer);
        }
        int[]smallnums=new int[nums.length];
        int n=0;
        for(int i=0;ilist=new ArrayList<>();
        while(num>0){
            list.add(num%2);
            num/=2;
        }
        for (int i = list.size()-1; i >=0 ; i--) {
//            System.out.print(list.get(i));
            if(list.get(i).equals(1)){
                count++;
            }
        }
        System.out.println(count);
    }
    
    @Test
    public void getand(){
        int l=2;int r=3;
        int and=l;
        for(;l<=r;l++){
            and&=l;    //0010  0011 0100 0101
        }
        System.out.println(and);
    }
    
    @Test
    public void diandao(){
        int x=120;
        int sum=0;
        int j=0;
        ArrayListlist=new ArrayList<>();
        while(x>0){
            list.add(x%2);
            x/=2;
        }//1010  0101  1101010110  0110101011
//        for (Integer integer : list) {
//            System.out.print(integer);
//        }
//        System.out.println();
        for (int i = list.size()-1; i >=0 ; i--,j++) {
            sum+=list.get(i)*pow(2,j);
        }
        System.out.println(sum);
    }
    
    @Test
    public void getonenumsarray(){
        int n=123;
        int temp;
        int count=0;
        int[]arr=new int[n+1];
        for(int i=0;i<=n;i++){
            temp=i;
            while(temp>0){
                if(temp%2==1){
                    count++;
                }
                temp/=2;
            }
            arr[i]=count;
            System.out.println(arr[i]);
            count=0;
        }
    }
    
    @Test
    public void getgoodmap(){
        int[]nums={1,21,23,13,13,100};
        int count=0;
        for(int i=0;i123){
                System.out.println("false");
                System.exit(0);
            }
        }
        System.out.println("true");

    }
    
    @Test
    public void operatoex(){
        String[]s={"+","-","+","+"};
        int x=0;
        for(int i=0;iallowed.length()){
                for(int j=0;j=0;i--){
            c1[i]=c[h++];
        }
        for (char cs : c1) {
            System.out.print(cs);
        }
    }
    
    @Test
    public void leftroll(){
        String s="asdfwe";
        int n=2;
        int j=0;
        int i=0;
        char[] chars = new char[s.length()];
        for(;i0) System.out.println(1);
        else if(sum==0) System.out.println(0);
        else System.out.println(-1);
    }

    public static void main(String[] args) {


    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/351645.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号