zoukankan      html  css  js  c++  java
  • 【TopCoder】SRM151 DIV2 练习总结

    第一次做完整的SRM题,刷完感觉萌萌哒,不过自己对java中很多细节不熟练,还要边做题边google。

    250分的题:判断字符串序列是否是前缀码,如果不是,返回第一个违反前缀码规则的字符串。

    简单的暴力方法,要积累的是java中startsWith的用法:

    1 public boolean startsWith(String prefix)

    如果prefix是调用该函数的字符串的前缀,返回true,否则返回false。从实际经验来看,对大小写是敏感的,即No不是not的前缀。

    完整代码连接:GitHub

    500分题:给定一个日期和一组人的生日,问从当前日期开始,下一次生日在什么时间。

    首先对这组人的生日排序,然后用二分查找当前日期;如果找到,就返回当前日期;否则,返回数组中第一个比当前日期大的日期。另外需要注意的一点是,如果数组中没有比当前日期大的日期,则返回数组中最小的日期(相当于从明年开始算)。

    积累java中Comparator的使用方法:实现一个新的类,并且实现接口Comparator,即实现函数compare。在compare中,如果两个对象是小于关系返回1,等于返回0,大于返回-1。

    实现了这个接口以后,无论是排序还是二分,都可以用java自带的函数了,十分方便快捷。

    完整代码连接:GitHub(不过这题我有个case没过T_T)。

    1000分题:计算mergesort中元素的比较次数,mergesort的过程题目很有爱的用伪码给出了。

    就是实现一个mergesort就可以了。

    完整代码:GitHub

  • 相关阅读:
    visual studio 2019 企业版下载
    对IT战略的认识
    投融资,你了解吗?
    一品投资农副产品电商平台工作内容
    高明的决策和投资远比低效的勤奋更重要
    随笔
    思维方式的不同
    公司经营问题探讨
    盘点海口最好吃的西餐厅top10
    羽毛球运动技巧
  • 原文地址:https://www.cnblogs.com/sunshineatnoon/p/3926639.html
Copyright © 2011-2022 走看看