2020年3月23日阿里笔试题[通俗易懂]

2020年3月23日阿里笔试题[通俗易懂]2020年3月23日阿里笔试题题目描述题目分析  这是阿里的第二场笔试,本来觉得没啥好写的,一道排列组合,一道迷宫。没有什么发挥的空间。但是后来在和大家讨论的过程中,把这道题的公司给敲出来了,但是这公式也不能白敲,干脆写一篇文章总结一下。题目描述一共n个人,从中选出任意个人组成一队,我们不妨记为k,再从k个人选出一人做队长。题目分析  这是一个典型的排列组合问题,从n个人选出k个,可…

大家好,又见面了,我是你们的朋友全栈君。

2020年3月23日阿里笔试题

  这是阿里的第二场笔试,本来觉得没啥好写的,一道排列组合,一道迷宫。没有什么发挥的空间。但是后来在和大家讨论的过程中,把这道题的公司给敲出来了,但是这公式也不能白敲,干脆写一篇文章总结一下。

题目描述

一共n个人,从中选出任意个人组成一队,我们不妨记为k,再从k个人选出一人做队长。

题目分析

  这是一个典型的排列组合问题,从n个人选出k个,可能是 C n k C_n^k Cnk,从k个人选出一个队长,种类数是 k k k,但是k可以是 1 1 1~ n n n,所以这个题的结果就是 ∑ k = 1 n k C n k \sum_{k=1}^nkC_n^k k=1nkCnk,这样写代码是可以过一些例子的。
  但是不会全过,因为复杂度过大。当然可以在求 C n k C_n^k Cnk的时候利用 C n k = C n k − 1 ∗ n + 1 − k k C_n^k=C_n^{k-1}*\frac{n+1-k}{k} Cnk=Cnk1kn+1k这个公式,因为 C n k − 1 C_n^{k-1} Cnk1我们也是要计算的,这样就会减少一定的复杂度,然后又能多过一些例子。
  我们还会想到 C n k C_n^k Cnk= C n n − k C_n^{n-k} Cnnk,这样又可以少一些计算。我们这时候就需要把 k ∗ C n k 和 ( n − k ) ∗ C n n − k k*C_n^k和(n-k)*C_n^{n-k} kCnk(nk)Cnnk一起计算,发现正好等于 n ∗ C n k n*C_n^k nCnk或者 n ∗ C n n − k n*C_n^{n-k} nCnnk
  到这里如果熟悉排列组合的同学,可能会想到了如果把数列反着再加一次。
在这里插入图片描述

  如果说这个题有什么需要总结的,就是一旦确定一个题目是排列组合的问题之后,可以去考虑使用公式优化计算量,当然时间紧迫,没有时间的话,就很难去优化了,还是需要注意平时多积累。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143075.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java开发手册之建表规约[通俗易懂]

    Java开发手册之建表规约[通俗易懂]Java开发手册之建表规约

    2022年4月22日
    155
  • 孙鑫VC视频教程笔记——Lesson2

    孙鑫VC视频教程笔记——Lesson21.函数重载发生在一个类里的,而函数的覆盖是发生在两个类之间(比如父类和子类)2.如果在基类中有一个函数是虚函数,子类有调用子类的,子类没有调用父类的。3.纯虚函数类似于JAVA中的接口类,必须被实现了才能创建对象。4.引用相当于给变量起别名,它必须在声明时就初始化。tip:按F2可以重命名文件5.在包含头文件时,使用“”和6.预编译指令符#ifndef#define#endif可以用于防止重

    2022年5月16日
    43
  • python激活_在线激活「建议收藏」

    (python激活)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月30日
    186
  • maven 打包命令的使用

    maven 打包命令的使用maven打包参数clean:clean能够保证上一次构建的输出不会影响到本次构建。package:命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库install:命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库deploy:命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其.

    2022年5月29日
    72
  • java找不到或无法加载主类_java找不到或无法加载主类如何解决?解决方法「建议收藏」

    java找不到或无法加载主类_java找不到或无法加载主类如何解决?解决方法「建议收藏」相信有很多人都遇到过java找不到或无法加载主类的这个问题,那么这究竟是什么原因造成的呢?有什么方法可以解决这个问题吗?问题:java文件导入到一个包当中,之后在class文件当中加入一张图片;解决:将class文件中的照片删除即可当然这只是一种情况,对于这样的情况下面做了一下总结,主要的话有下面的几种解决方法。解决方法:检查一下自己的环境变量是不是配置成功win+r输入cmd-输入java…

    2025年7月24日
    2
  • GridView利用CheckBox复选框列实现单选功能

    GridView利用CheckBox复选框列实现单选功能自Dev13.2开始,GridView提供了自带的复选框列,该功能能实现多选操作,方便了不少,那如果想把这个自带的复选框列做成单选,那就需要单独处理了。先补充一下,GridView的复选框列怎么设置,如下代码片段,只要设置前面两个属性即可在GridView看到有一列复选框(BandedGridView较老版本不支持这个功能,应该得在19.2或者20之后的版本才支持,具体可以看看自己的版本,如果设置无效,那么说明不支持)://设置显示复选框列gridview.Option

    2022年5月7日
    84

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号