小算法题,没地方记录,就记在这里了

1、二分法

  int[] arr = {1,2,3,4,5,6,7,8,9,10};
  int key = 2;
  int min ,max ,mid;
  min = 0;
  max = arr.length-1;
  mid = (min+max)>>1;//(min+max)/2
  while (arr[mid]!=key){
    if(key>arr[mid]){
      min = mid+1 ;
    }else if(key<arr[mid]){
      max = mid -1;
    }
    if(max<min){
      return;
    }
    mid = (min+max)>>1;//(min+max)/2
  }
  System.out.println(mid);

2、冒泡排序  

  int[] arr1 = {21,14,56,2,5,16,27,83,9,10};
  int common ;
  for(int i=0;i<arr1.length;i++){
    for(int j=i+1;j<arr1.length;j++){
      if(arr1[i]<arr1[j]){
        common = arr1[i];
        arr1[i] = arr1[j];
        arr1[j] = common;
      }
    }
  }
  System.out.println(Arrays.toString(arr1));

3、求最大公约数、最小公倍数

  System.out.println("请输入第一个数字:");
  Scanner sc=new Scanner(System.in);
  int a = sc.nextInt();
  System.out.println("请输入第二个数字:");
  int b = sc.nextInt();
  int c ;
  int mul = 1;
  int num = 1 ;
  if(a>b){
    c=a;
    a=b;
    b=c;
  }
  for(int i=2;i<a;i++){
    if(a%i==0&&b%i==0){
      a=a/i;
      b=b/i;
      mul*=i;
      num = i;
    }
  }
  System.out.println("最小公倍数:"+a*b*mul);
  System.out.println("最大公约数:"+num);

时间: 2024-08-08 13:57:56

小算法题,没地方记录,就记在这里了的相关文章

算法题库

1. 时针分针重合几次 表面上有60个小格,每小格代表一分钟, 时针每分钟走1/12小格,分针每分钟走1小格,从第一次重合到第二次重合分针比时针多走一圈即60小格,所以 60/(1-1/12)=720/11 每隔720/11分才重合一次(而并不是每小时重合一次) 1440里有22个720/11,如果说算上0点和24点,那也是重合23次而已,但我觉得0点应该算到前一天的24点头上,所以每一天循环下来重合22次啊 2. 找出字符串的最长不重复子串,输出长度 建一个256个单元的数组,每一个单元代表一

一个算法题,又是小明。囧

第一次写博客文章,有点小紧张.若是有什么错误还望众大神指点.为了备战下个月的蓝桥杯,苦战算法题,觉得有一道题不错,就拿来分享一下. 原文如下:地宫取宝,X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签.地宫的入口在左上角,出口在右下角.小明被带到地宫的入口,国王要求他只能向右或向下行走.走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿).当小明走到出口时,如果他手中的宝贝恰好是k件,则这些宝贝就可

记一道数字旋转排列算法题

记一道数字旋转排列算法题 面试的时候遇到一道算法题,当时没做出来,也没有什么思路.睡觉前突然想到解法,记录一下. 题的大意如下,数字以1开始,并围绕1做逆时针旋转,其中1的坐标为(0, 0),如下图所示: 要求给一个坐标,求其未知的数是多少?例:给出(1, 0),该坐标的数为2:给出(-1, -2),该坐标上的数为22. 说下解题思路,由点的坐标可以得出目标值所在的圈数p,比如5在第2圈,p的大小为坐标x或y较大绝对值n再+1,比如18为(-2,1),绝对值n为2,则18在第3圈(n+1),然后

记一道毫无思路的算法题

今天贤内给了我一道很实际的算法题,把我彻底难住了,实在想不出来,于是写此博文以记之. 背景是这样的,现在有一个付款明细的Excel,里面有为哪个发票,哪个公司应付多少钱的明细,明细数据是62条,现在知道我们已经付出的金额为Sum,请问到底哪些发票是已付款的. 这是62条明细数据: 653165.00 356029.11 220896.45 146362.00 1847670.00 3018518.91 1347553.07 145010.74 339784.84 199350.28 120611

第一篇博客--记面陌陌科技计算机视觉算法工程师被刷经历(附面试过程中被问倒的一些算法题分析)

求职季,真的会让一个人变得有些不一样吧,比如我,对于一个菜鸟来说,最近一段时间焦虑不安外加有点自闭... 前段时间在校内网上看到了陌陌科技内推计算机视觉算法工程师和机器学习算法工程师的消息,抱着试试的心态整理了一份简历按照提供的邮箱投出去了,我想这次应该又是石沉大海了吧,谁想在一周前闷热的一天在嘈杂的餐厅接到了陌陌科技HR的电话,一周后的周五下午4点在西安的一家咖啡馆参加面试.我问清了时间地点并道谢了HR后并挂了电话继续吃饭. 好吧,这周每天都有各个公司的笔试,外加这周周五上午的组会轮到我做组会

记录一次面试中二分查找的算法题

总结一下本次二面的一道算法题,当时代码写到一半,发现自己逻辑好像有问题,然后就没办法往下写了,导致最终没做出来,面试出来百度了一下,瞬间感觉自己......... 废话不多说,直接看题 需求:写一个二分查找,用迭代的方式去实现,并设计该算法的测试案例 面试完后看见这个题目真是简单,直接代码写起 public class Algorithm{ public int binarySearch(int[] nums,int target){ int left = 0; int right = nums

删除指定字符串的算法题,面试时候没做出来

很多年没来这里了. 今天上午参加了字节跳动视频面试,面试官让现场做一道算法题,有点紧张做错了.我把题目发出来,有需要的朋友看看. 题目:删除字符串 描述:给定一个字符串,不考虑大小写,将该字符串中连续的某个子串'XXX'删除,返回结果中不包含'XXX'. 例子: 输入字符串:aaaabbbbb XXX子串:ab 输出结果:b 结束面试后,花了几分钟时间做了一下(用python语言实现). 1 def removeString(in_str, remove_str='ab'): 2 ret_lis

经典算法题每日演练——第十七题 Dijkstra算法

原文:经典算法题每日演练--第十七题 Dijkstra算法 或许在生活中,经常会碰到针对某一个问题,在众多的限制条件下,如何去寻找一个最优解?可能大家想到了很多诸如“线性规划”,“动态规划” 这些经典策略,当然有的问题我们可以用贪心来寻求整体最优解,在图论中一个典型的贪心法求最优解的例子就莫过于“最短路径”的问题. 一:概序 从下图中我要寻找V0到V3的最短路径,你会发现通往他们的两点路径有很多:V0->V4->V3,V0->V1->V3,当然你会认为前者是你要找的最短 路径,那如

[2]十道算法题【Java实现】

前言 清明不小心就拖了两天没更了-- 这是十道算法题的第二篇了-上一篇回顾:十道简单算法题 最近在回顾以前使用C写过的数据结构和算法的东西,发现自己的算法和数据结构是真的薄弱,现在用Java改写一下,重温一下. 只能说慢慢积累吧-下面的题目难度都是简单的,算法的大佬可直接忽略这篇文章了-入门或者算法薄弱的同学可参考一下- 很多与排序相关的小算法(合并数组.获取数字每位值的和),我都没有写下来了,因为只要会了归并排序(合并数组),会了桶排序(获取数字每位的值),这些都不成问题了.如果还不太熟悉八大