牛客编程题:枪打出头鸟

1.看错误出在哪

public long solve(int index,int[] array){
        if(n<=0){
            return 0;
        }
		int totle=0;
		int len=array.length-1;
		for(int i=len,j=i-1;i>=0;i--){	
				if (array[j]>array[i]) {
					totle+=array[i];
				}
				j--;
				if (j<0) {
					break;
				}
			}
		return totle;
		}

2.算法练习过程

(1)算法描述:设计一个算法,计算出n阶乘中尾部零的个数

                a)法一:我想到的方法:

                       第一步:通过一个计算阶乘的函数,先计算出传入数值的阶乘。

                       第二部:将计算过后返回的整数值变为字符串形式的,通过一个for循环输出为0的值并进行自加

                       第三部;输出加过的数 即为0的个数。

                      缺点

                     【1】.开销 计算阶乘的开销会越来越大

                     【2】.溢出 计算后可能会超出原先定义的类型的范围

                     【3】.效率

              b)法二:以5为迭代步数

                      第一步:考虑末位出现0的值 一般都是10或10的倍数相乘的结果,而10其实是5与偶数相乘。

                     第二步:最终结果中末尾出现的0是5、10、15、20…….自身或者与偶数相乘之后产生的。所以可以根据5的倍数分析。

(2)算法描述:.比较字符串

                     比较两个字符串AB,确定A中是否包含B中所有的字符。字符串AB中的字符都是 大写字母

                     样例

                              给出 A = "ABCD" B = "ACD",返回 true

                             给出 A = "ABCD" B = "AABC" 返回 false

                    注意事项

                         在 A 中出现的 B 字符串里的字符不需要连续或者有序。判断A中是否包含B的所有字符串

                          【1】先判断两个字符串是否为空

                          【2】将两个字符串转换为数组

                         【3】用一个for语句来遍历两个数组     长度以B数组的长度为标准

                         【4】利用indexOf()函数来取出B中的元素来判断A数组中是否存在,若存在,则将该数组元素置为

(3)算法描述:二分查找算法分析

                       【1】参数传进来    Nums[]    target

                      【2】如果升序数组nums[]中有target所表示的数   则表示出这个数的下标。

      设计思路:

                      待续...................

3.随手记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值