没事就去刷刷编程题

最近发现一个联系编程的好网站,没事的话,可以上去加强一下自己的算法基础,提高一下自己的编程能力,上面的题目很多,可以循序渐进的从基础再到难度较大的题目进行练习.

网站1:https://leetcode.com/problemset/all/

网站2:http://www.lintcode.com/zh-cn/

中午休息时间做了几道题目:

    /**
     * 两个数组合并排序
     * @param A
     * @param B
     * @return
     */
    public static int[] mergeSortedArray(int[] A, int[] B) {
        int len = A.length + B.length;
        int[] C = new int[len];
        System.arraycopy(A, 0, C, 0, A.length);
        System.arraycopy(B, 0, C, A.length, B.length);
        int temp;
        for(int i = 0; i < len; i++){
            for(int j = i; j > 0; j--){
                if(C[j] < C[j-1]){
                    temp = C[j];
                    C[j] = C[j-1];
                    C[j-1] = temp;
                }
            }
        }
        return C;
    }

    /**
     * 在数组中找到第k大的元素
     * @param k
     * @param nums
     * @return
     */
    public static int kthLargestElement(int k, int[] nums) {
        int size = nums.length;
        int temp;
        for(int i = 0; i < size; i++){
            for(int j = i; j > 0; j--){
                if(nums[j] > nums[j-1]){
                    temp = nums[j];
                    nums[j] = nums[j-1];
                    nums[j-1] = temp;
                }
            }
        }
        for(int index=0; index<size;index++){
            System.out.print(nums[index]+",");
        }
        int resl = nums[k-1];
        return resl;
    }
    /**
     * 计算数字k在0到n中的出现的次数,k可能是0~9的一个值
     * @param k
     * @param n
     * @return
     */
    public static List<Integer> digitCounts(int k, int n) {
        List<Integer> list = new ArrayList<Integer>();
        for(int i = 1; i <= n; i++){
            String str = String.valueOf(i);
            char[] c = str.toCharArray();
            for(int j=0;j < c.length; j++){
                int x = Integer.valueOf(String.valueOf(c[j]));
                if(k == x){
                    list.add(i);
                }
            }
        }
        return list;
    }

    /**
     * 计算一个数阶乘后尾部包含0的个数
     * @param n
     * @return
     */
    public static long trailingZeros(long n){
        int count = 0;
        long reslt = jiechen(n);
        System.out.println(reslt);
        while((reslt % 10) == 0){
            reslt = reslt/10;
            count ++;
        }
        return count;
    }

    private static long jiechen(long n){
        long sum = 1;
        if(n < 0){
            return -1;
        }
        if(n <= 1){
            return 1;
        }
        for(long i = 1; i <= n; i++){
            sum *= i;
        }
        return sum;
    }
时间: 2024-11-01 20:37:38

没事就去刷刷编程题的相关文章

2015 去哪儿编程题1

[编程题] 二分查找 对于一个有序数组,我们通常采用二分查找的方式来定位某一元素,请编写二分查找的算法,在数组中查找指定元素. 给定一个整数数组A及它的大小n,同时给定要查找的元素val,请返回它在数组中的位置(从0开始),若不存在该元素,返回-1.若该元素出现多次,请返回第一次出现的位置. 测试样例: [1,3,5,7,9],5,3 返回:1 代码如下: import java.util.*; public class BinarySearch { public int getPos(int[

去哪儿网2017校招在线笔试(前端工程师)编程题及JavaScript代码

编程题很简单.整个试卷结构为: 一.问答题: 对前端的理解,了解哪些框架库? 二.在线编程题:身份证分组 如下第一道:身份证分组 三.在线编程题:身份证分组.统计字符.酒店价格(三选二) 如下第二三四道题中三选二作答. 我也搞不懂为什么有两部分编程题~~~下面详细说一说编程题目及JS代码实现: 第一道:身份证分组 代码: 1 var line; 2 while(line = read_line()){ 3 while(line.indexOf(" ") != -1){ 4 line =

网易2017秋招编程题集合-牛客网

网易2017秋招编程题集合-牛客网 链接:https://www.nowcoder.com/questionTerminal/0147cbd790724bc9ae0b779aaf7c5b50来源:牛客网 如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列.例如: {1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列, {1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列. 现在给出一个数字序列,允许使用一

[编程题-华为]明明的随机数

[编程题] 明明的随机数 华为上机题喜欢考 排序+去重 的题目 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号.然后再把这些数从小到大排序,按照排好的顺序去找同学做调查.请你协助明明完成“去重”与“排序”的工作. Input Param n               输入随机数的个数 inputArray      n个随机整数组成

一道模板元编程题源码解答(replace_type)

今天有一同学在群上聊到一个比较好玩的题目(本人看书不多,后面才知是<C++模板元编程>第二章里面的一道习题), 我也抱着试一试的态度去完成它, 这道题也体现了c++模板元编程的基础和精髓: 类型就是数据. 题目如下所述: Write a ternary metafunction replace_type<c,x,y> that takes an arbitrary compound type c as its first parameter, and replaces all oc

上机操作编程题

一.写一个简单的缓存系统 1 package com.wisezone.demo; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 /** 6 * 上机操作: 7 * 面试题--写一个简单的缓存系统 8 * @author 王东海 9 * @2017年6月5日 10 */ 11 public class CacheDemo 12 { 13 private Map<String, Object> map = new HashMap&

我给女朋友讲编程-题外话系列(1)--害怕过七夕,不知道买什么礼物

我女朋友在外地出差,平常能够做的就是打打电话,聊聊天. 下周六就是中国的情人节了. 说实话,也许你们觉得七夕很浪漫,但是我是有一点小恐惧,因为不知道送什么礼物给女朋友好.以前给女朋友送过一些礼物,尽管精心准备,有时难免留有遗憾. 不管怎么说,又是一次情人节,我还是需要精心准备一下,于是花时间来搜索礼物,另外也请朋友们给我出一点建议. 下面是我搜到的一些礼物,想看大图片的朋友可以单击小标题.请大家给点建议. 1, 戒指 曾经在网上买了两对情侣戒指,还刻上了双方名字首字母,满心欢喜送出去,女朋友收到

笔试:编程题

0,1背包问题: 定义V(i,j):当前背包容量 j,前 i 个物品最佳组合对应的价值: 递推关系式: 1) j<w(i)      V(i,j)=V(i-1,j) 2) j>=w(i)     V(i,j)=max{ V(i-1,j),V(i-1,j-w(i))+v(i) } 参考:动态规划-01背包问题 网易2017春招笔试编程题集合: 双核处理: 两个CPU,多个任务:求最小时间: 输入: 5 3072 3072 7168 3072 1024 输出: 9216 解法: 动态规划问题:以总

2. Python面试编程题汇总

编程题 1 台阶问题/斐波纳挈 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. fib = lambda n: n if n <= 2 else fib(n - 1) + fib(n - 2) 第二种记忆方法 def memo(func): cache = {} def wrap(*args): if args not in cache: cache[args] = func(*args) return cache[args] return wrap