1. 寻找第K大数值 题意 有一个无序整数数组,请你根据排序思路,找出数组中第K大的数。 给定一个整数数组a, 请返回第K (1<=K<=n) 大的数(包括重复的元素,不用去重),保证答案存在。 示例 输入 [3,2,1,5,6,4] , 2 返回值 5 2. 常规思路 先对无序数组进行排序,然后对有序数组进行查找。 至于选择什么排序算法,有待确定。 先看一下,各种排序算法的复杂度以及稳定性。 看完上面比较之后,可能你心中已经有了自己的答案。 3. 解题思路 常规思路需要两大步: 先整体排序 在有序中查找目标值 那么,针对这道题,我们能不能在排序的过程中就确定目标值呢?...
1. 大数乘法 在算法中有这么一道经典题:大数乘法。 题意 以字符串的形式读入两个数字,编写一个函数计算它们的乘积,以字符串形式返回。(字符串长度不大于10000,保证字符串仅由'0'~'9'这10种字符组成) 示例 输入:"456","123" 返回值:"56088" 说明:456*123=56088 2. 乘法运算规则 按照我们从小学习的乘法运算规则可知:两个数相乘时,可以用其中一个数的每一位与另一个数相乘,然后把相乘结果相加即可得出运算结果。大致如下图所示: 但是,如果把这个运算规则映射到代码中,你会怎么写呢? 从现在开始,给你20分钟的时间写出一个实现算法(20分钟是字节跳动在...