面试题:把数组排成最小的数

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接处的所有数字中最小的一个。例如,输入数组{3,32,321},则打印出这3个数字能排成的最小数字321323。

思路:暴力全排列基本属于不可考虑的情况,O(n!)。那么考虑两个数字拼成一个后再跟下一个拼,那么也能得到最小数字,这样子就能得到O(nlogn),好太多了这效率。还要注意一点,假如数组有点大,那么一个Int是收不完的,最后要转成string。代码就省略了,相信有这思路,再思考一下就能做出来了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
估算系统的最大并发是为了评估系统在同时处理大量请求时的性能和稳定性。下面是如何估算系统的最大并发的几个步骤: 1. 了解系统架构和设计:首先需要了解系统的架构和设计,包括系统的组件和模块、据库设计、网络通信等方面。这有助于确定系统在处理请求时的瓶颈和限制。 2. 识别关键路径:通过分析系统的关键路径,确定在高并发情况下可能出现的瓶颈点。例如,网络延迟、据库连接和查询、IO操作等可能成为系统性能瓶颈的地方。 3. 进行压力测试:使用工具如JMeter、LoadRunner等进行压力测试,模拟系统在高并发情况下的负载。通过逐渐增加并发用户,观察系统的性能表现和响应时间。根据测试结果,判断系统的瓶颈和最大并发。 4. 考虑系统资源:除了性能和响应时间,还需要考虑系统的资源使用情况。例如,内存、CPU、带宽等。如果系统运行过程中资源消耗过大,可能会导致性能下降甚至崩溃。 5. 进行容量规划:根据压力测试结果和资源考虑,进行容量规划。根据系统的最大并发,确定服务器量和配置,以及网络带宽等需求。这有助于确保系统在高负载和高并发情况下的稳定性和性能。 总而言之,估算系统的最大并发需要深入了解系统架构和设计,并通过压力测试等手段评估系统的性能和稳定性。这可以帮助调整系统配置和进行容量规划,以满足用户需求并确保系统的正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值