微软100题第18题(求出在这个圆圈中剩下的最后一个数字)

微软的100道算法面试题(一) 程序员为什么要学数据结构? 在计算机发展的初期,人们使用计算机的主要目的是处理数值计算问题。使用计算机解决具体问题一般需要经过以下几个步骤:首先从具体问题抽象出适当的数学模型,然后设计或选择解此数学模型的算法,接着编写程序并进行调试、测试,直至得到最终的解答。 由于最初涉及的运算对象是简单的整型、实型或布尔型数据,所以程序设计者的主要精力集中于程序设计的技巧上,而无需重视数据结构。随着计算... 阅读详情

发布一个k8s部署视频:https://edu.youkuaiyun.com/course/detail/26967

课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。

腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518

第二个视频发布  https://edu.youkuaiyun.com/course/detail/27109

腾讯课堂连接地址https://ke.qq.com/course/484107?tuin=ba64518

介绍主要的k8s资源的使用配置和命令。包括configmap,pod,service,replicaset,namespace,deployment,daemonset,ingress,pv,pvc,sc,role,rolebinding,clusterrole,clusterrolebinding,secret,serviceaccount,statefulset,job,cronjob,podDisruptionbudget,podSecurityPolicy,networkPolicy,resourceQuota,limitrange,endpoint,event,conponentstatus,node,apiservice,controllerRevision等。

第三个视频发布:https://edu.youkuaiyun.com/course/detail/27574

详细介绍helm命令,学习helm chart语法,编写helm chart。深入分析各项目源码,学习编写helm插件


————————————————------------------------------------------------------------------------------------------------------------------

1scala版本

package ms
/**
 * 第18题(数组):
题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,
每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。
当一个数字删除后,从被删除数字的下一个继续删除第m个数字。
求出在这个圆圈中剩下的最后一个数字。
 */

class Circle(){
    var start=Node(0)
    def this(n:Int){
      this()
      var tmp=start;
      for(i<-1 until n){
        tmp.next=Node(i)
        tmp=tmp.next
      }
      tmp.next=start;
    }
    
    def printCircle(){
      var tmp=start
      while(tmp.next!=start){
        print(tmp.value+",")
        tmp=tmp.next
      } 
      print(tmp.value+",")
    }
    
    def computeLast(m:Int):Int={
      while(start.next!=start){
        for(i<-0 until m-2){
          start=start.next
        }
        start.next=start.next.next
        start=start.next
      }
      return start.value
    }
    
    case class Node(val value:Int,var next:Node=null)
}

object MicroSoft018 {
  def main(args: Array[String]): Unit = {
    val c=new Circle(10)
    c.printCircle()
    println()
    println(c.computeLast(3))
  }
  
}

2java版

http://blog.youkuaiyun.com/hxpjava1/article/details/22443947
 

3python版本

'''
Created on 2017-1-18

@author: admin
'''
from _overlapped import NULL
class Circle:
    def __init__(self,n):
        if n<0:
            raise ValueError
        
        self.start=self.Node(0)
        tmp=self.start
        for i in range(1,n):
            tmp.next=self.Node(i)
            tmp=tmp.next
        tmp.next=self.start
    
    def computeLastValue(self,m):
        while self.start.next!=self.start:
            for i in range(0,m-2):
                self.start=self.start.next
            self.start.next=self.start.next.next;
            self.start=self.start.next
        return self.start.value
    def printCircle(self):
        tmp=self.start
        while(tmp.next!=self.start):
            print(tmp.value,end=",")
            tmp=tmp.next
        print(tmp.value)
    class Node:
        def __init__(self,value):
            self.value=value
            self.next=NULL
if __name__ == '__main__':
    c=Circle(10)
    c.printCircle()
    print(c.computeLastValue(3))

 
蓝桥杯历年真题分类汇总(史上最全版本,一定不要错过) 天再高又怎样,踮起脚尖就更接近阳光。 满满的 题型总结​ 历年真题​ 视频讲解​ 比赛技巧 题型总结 2021 2020 2019 2018 2017 2016 2015 2014 2013 ... 阅读详情

相关推荐

C# emgu.cv图像识别 从大图中寻找小图,判断存在图的相似度

这是2个问题,我采用emgu.cv来解决这个识别问题,这里需要在nuget中引用emgu。最近写了一个在一张图片中,截取一部分,通过机器判断截取图片是这张图片的。第一、通过小图去找判断是否存在大图中,第二、小图存在大图的什么位置。

一个专注于技术研究创新的程序员 2467

约瑟夫环--O(n)算法

转载地址:http://zhedahht.blog.163.com/blog/static/2541117420072250322938/ 题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。 首先定

xc889078的专栏 862

Git下载安装及环境配置,解决安装包下载慢问题(详细版)

Git是我们平时开发都要用到的项目管理工具,虽然有网页版的Git网站,但是在本地安装Git后,可以直接使用命令语句来进行项目的上传与克隆。还是非常方便的。今天就来介绍下Git的下载。1、首先在浏览器中搜索Git,进入到Git的官方下载界面或者直接复制下面这个链接。 2、点击download进入下载界面,选择自己需要平台的文件 3、下载标准版就可以4、但是会发现下载速度很慢,就找个镜像版 5、点击 https://registry.npmmirror.com/binary.html?path=git-for-

mengxiang_的博客 6万+

算法与数据结构面试题(22)-求出在这个圆圈中剩下的最后一个数字

题目 n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字 (第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后, 从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。 参考文章 http://blog.youkuaiyun.com/lzj509649444/article/details/7

doctorq 1738

登临科技Goldwasser加速卡Python SDK实战:从环境配置到YOLOv5模型性能压测

本文详细介绍了登临科技Goldwasser加速卡的Python SDK实战指南,从环境配置到YOLOv5模型性能压测的全过程。通过驱动安装、SDK环境搭建、模型转换与推理优化等步骤,帮助开发者高效利用AI加速卡提升深度学习模型性能。重点分享了批量推理压测技巧和常见问题解决方案,助力开发者充分发挥Goldwasser加速卡的算力优势。

weixin_29035147的博客 303

find命令

命令是 Linux/Unix 系统中用于搜索文件和目录的强大工具,支持多种搜索条件组合,并能对搜索结果执行各种操作。以下是其详细说明、常用参数及示例: 搜索路径:指定起始目录(如 、 或 表示当前目录)。 查找条件:基于文件名、类型、大小、时间等属性过滤。 处理动作:对匹配结果执行操作(如打印、删除、执行命令等)。 常用参数及示例 1. 按名称查找 :区分大小写匹配文件名。 :不区分大小写匹配文件名。 2. 按文件类型查找 :指定文件类型。 文件类型: :普通文件 :目录 :符号链接

qiao2458的博客 1138

第18 题: 题目:n 个数字(0,1,…,n-1)形成一个圆圈,从数字0 开始每次从这个圆圈中删除第m 个数字(第一个为当前数字本身,第二个为当前数字的下一个数 字)。

当一个数字删除后,从被删除数字的下一个继续删除第m 个数字。 求出在这个圆圈中剩下的最后一个数字。 思路:       把这个题目中的开始数字改下以便下面的说明,n 个数字(1,…,n-1,n)形成一个圆圈,从数字1 开始每次从这个圆圈中删除  第(第说明与开始数字无关)m 个数字(第一个为当前数字本身,第二个为当前数字的下一个数 字)。      这个是Josephus问题的推广

Matrixlibing的专栏 4121

空地多无人平台协同路径规划复现:从建模到Matlab仿真全解析

路径规划是机器人领域的核心基础技术,从单机避障到多平台协同,问题复杂度显著提升。空地协同规划融合无人机与无人车的异构优势,通过将地图分层建模为空中与地面栅格,并采用A*算法生成初始路径、B样条平滑以及改进遗传算法进行任务分配与时间同步优化,能够有效处理几何约束、运动学约束和避碰约束等。该技术广泛应用于区域巡逻、目标搜索、物资转运等任务场景,也是高校论文复现和工程仿真的常见课题。本文从问题建模、算法设计到Matlab代码结构,系统梳理了一套空地多无人平台协同路径规划的复现思路,同时给出坐标系校准、遗传算法收敛

weixin_32175665的博客 252

求在这个圆圈中剩下的最后一个数字

第18题(数组): 题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始, 每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。 当一个数字删除后,从被删除数字的下一个继续删除第m个数字。 求出在这个圆圈中剩下的最后一个数字。 //coder:LEE //20120227 #include #include #include #inc

lihappy999的专栏 655

请尽可能地详细说明一个VLA项目的立项训练到落地的全流程

一个机器人VLA项目的全流程是一个复杂的系统工程,它深度融合了机器人学 (Robotics)计算机视觉 (CV)和自然语言处理 (NLP)。其核心挑战在于高质量数据的获取和从仿真到现实的有效迁移。与纯粹的软件AI项目相比,它增加了硬件、物理交互和安全性的维度,但其最终能让AI走出虚拟世界、在物理世界中产生实际价值,这也是其巨大的魅力所在。

具身机器人和通用AI 304

【即插即用模块】卷积篇 | CVPR 2025 | LSConv:大核捕全局,小核提速度,替换 3×3 卷积/自注意力,精度效率双飙升

文章摘要: LSConv是一种新型卷积模块,采用"大核感知+小核聚合"策略,在轻量级视觉任务中表现出色。该模块由两部分组成:7×7深度可分离卷积(LKP)捕捉全局信息,动态3×3卷积(SKA)实现高效特征聚合。相比传统卷积和自注意力机制,LSConv在降低计算量的同时提升了精度,尤其适合高分辨率视觉任务。实验表明,在轻量化模型中用LSConv替代3×3卷积或自注意力,可显著减少计算量并提高准确率。模块支持即插即用,提供Triton优化实现,可直接集成到现有卷积或Transformer架构

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1124

迭代子模式

迭代这个名词对于熟悉Java的人来说绝对不陌生。我们常常使用JDK提供的迭代接口进行java collection的遍历   1.迭代器角色定义了遍历的接口,但是没有规定由谁来控制迭代。在Java collection的应用中,是由客户程序来控制遍历的进程,被称为外部迭代器;还有一种实现方式便是由迭代器自身来控制迭代,被称为内部迭代器。外部迭代器要比内部迭代器灵活、强大,而且内部迭代器在j...

不懂夜的黑 140

手把手教你学Simulink--基于Simulink的微电网用DC-DC变换器仿真建模

微电网概述微电网:包括可再生能源发电设备、储能系统和负载,可以独立于大电网运行,也可以并网运行。重要性提高能源可靠性:通过本地化供电减少对外部电网的依赖。促进可再生能源利用:支持高效整合多种可再生能源。挑战多源管理:不同类型的能源产生方式各异,需设计灵活的电源管理系统。能量转换效率:需要高效的能量转换装置来确保能源的有效利用。通过上述步骤,我们简要介绍了如何基于Simulink进行微电网中DC-DC变换器的仿真建模。

MHD0815的博客 162

微软面试100题之 18

题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始, 每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。 当一个数字删除后,从被删除数字的下一个继续删除第m个数字。 求出在这个圆圈中剩下的最后一个数字。 July:我想,这个题目,不少人已经 见识过了。 先看这个题目的简单变形。 n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到

miao6664659的专栏 922

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【从零单排之微软面试100题系列】18之约瑟夫环问题

原题参见july大神博客系列【微软面试100题】 题目描述:n个数字(0到n-1)排成一个圆圈,从0开始每次删除第m个数字。求剩下的最后一个数字。 分析思路:(本题亦见于《剑指offer》面试题45) 假设第一个删掉是元素k(其中k = (m-1)%n),那么下一轮将从剩下的n-1个元素删掉从元素k+1开始的第m个元素。若将元素k+1看成是第0个元素。 则存在映射:k+1

leiqian2008的专栏 491

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

July 微软面试100题 第18题 约瑟夫环

<br />题目:n个数字(0,1,2,........,n-1)形成一个圆圈,从数字0开始,每次从圆圈中删除第m个数字(第一个为当前 数字本身,第二个为当前数字的下一个数字)当一个数字删除 以后,从被删除的下一个继续删除第m个数字,求出这个圆圈中的最后一个数字。<br /> <br /> <br /> <br /> <br />约瑟夫环问题,本科刚开始学习数据结构时的一个课程设计,考察的是对链表的操作<br />只要仔细的分析好指针操作就可以完成。<br />程序清单:<br /> <br />#incl

shandongdaya的专栏 746

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

微软面试100题之18题:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始... ...

题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。 分析:我们完全可以用计算机来模拟上述过程,每找到一个要删除的数,需要扫描m次,总共删除n-1个数,所以总得扫描次数为m*(n-1)。这是一个平方级的复杂

tongxinhaonan的专栏 693

微软100题(18)约瑟夫环

题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始, 每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。 当一个数字删除后,从被删除数字的下一个继续删除第m个数字。 求出在这个圆圈中剩下的最后一个数字。 int LastRemainInCircle(unsigned int n,unsigned int m) { if(n < 1 || m <

liuqing0517的博客 464

【微软100题】n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始, 每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。 当一个数字删除后,从被删除数

package test; /** * 题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始, 每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。 * 当一个数字删除后,从被删除数字的下一个继续删除第m个数字 * * 思路:最简单的思想,一步一步按照题目的方法,进行计算 * @author Zealot * */ public cl

Zealot的专栏 1008

微软100题-天天做-第18题

第18题(数组): 题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始, 每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。 当一个数字删除后,从被删除数字的下一个继续删除第m个数字。 求出在这个圆圈中剩下的最后一个数字。 July:我想,这个题目,不少人已经 见识过了。

mark's technic world 725

[整理I]精选微软等公司数据结构+算法面试100题 [第1-40题]

精选微软等公司,数据结构+算法,经典面试100题                           --------之前40题 -------------------------- 算法面试:精选微软等公司经典的算法面试100题 第1-40题如下:--------------- -------------- 1.把二元查找树转变成排序的双向链表  题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。  10 

结构之法 算法之道 2万+

微软公司等数据结构+算法面试100题2010版全部出炉

微软等公司数据结构+算法面试100题2010版首次完整亮相 作者:July、2010年12月6日。 更新:现今,这100题的答案已经全部整理出来了,微软面试100题2010年版全部答案集锦:http://blog.youkuaiyun.com/v_july_v/article/details/6870251。 关于此100道面试题的所有一切详情,包括答案,资源下载,帖子...

mmdev 185

链表面试题集锦

[分类整理II]微软等100题系列V0.1版:链表面试题集锦 此微软等100题系列V0.1版,关于链表的面试题,占了11道。 链表,在数据结构中,也是一个最基本的重头戏。 请看: -------------- 2.设计包含 min 函数的栈。 定义栈的数据结构,要求添加一个 min 函数,能够得到栈的最小元素。 要求函数 min、push 以及 pop 的时间复杂度都是 O(1)

donadonny的专栏 258

看大神文章小结——微软等面试 18,19

大神 地址 :http://blog.youkuaiyun.com/v_JULY_v/article/details/6015165 第 18 题(数组): 题目:n 个数字(0,1,…,n-1)形成一个圆圈,从数字 0 开始, 每次从这个圆圈中删除第 m 个数字(第一个为当前数字本身,第二个为当前数字的下一个 数字)。当一个数字删除后,从被删除数字的下一个继续删除第 m 个数字。 求出在这个圆圈中

x6587305x的专栏 565

100题 1-255简单总结

2.min栈:2个栈,存放最小值,push比较 3.子数组的最大和:遍历一遍,sum 4.在二元树中找出和为某一值的所有路径:回溯,递推,三个二叉树遍历 5.查找最小的 k个元素:大根堆不好,k个数组,o(k*(n-k)) 7.微软亚院之编程判断俩个链表是否 相交:尾节点是否相同(无环) 3种(有环) 环:(快慢指针) 8.字符串比较,链表倒置等 9 判断整数序列是不是二元查找树的后序

小人物的草稿本 840

Java 真实大厂面试题 100 道汇总

1024

曲翎风 589
上一篇: 微软100题第16题(输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印)
下一篇: 微软100题21题(要求将其中所有的可能组合列出来)
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hxpjava1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值