摘要: 1.插入排序(insertion sort) 如图所示,将需要排序的序列,分成已排序的部分,和未排序的部分。 循环中,每一次就将当前迭代到的,未排序的第一个元素,插入到在已排序部分中的适当位置。 2.选择排序(selection sort) 如图所示,首先便利所有未排序的元素,找出最大的一个,然后与 阅读全文
posted @ 2019-03-02 16:47 leo_lee 阅读(7707) 评论(0) 推荐(0) 编辑
摘要: 主要问题: 输入一个n个数的数组,找出数组里个数超过n/3的数字。 主要思路: 从题目的信息里,超过n/3的数字,一个n个数的数组里,最多只能存在2个,所以我们借鉴基础的摩尔投票算法,用两个候选来记录可能是n/3的数字,最后再根据这2个候选来计算这两个数字的具体在数组里的个数是否超过n/3。 而摩尔 阅读全文
posted @ 2019-02-28 14:35 leo_lee 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 问题: 给出数字n,在1~n中,假设设定了一个数字x让你猜,你猜一个y,如果错误,那就收取¥y的费用,并告诉你x与y的大小关系。求出在1~n中,在最佳策略下猜出一个x至少要花费多少。(考虑所有情况) 思路: 这里用到了DP问题的解决思想。通过遍历猜所有数字的情况,例如n为5,猜3,那么就将问题分成, 阅读全文
posted @ 2019-01-28 19:41 leo_lee 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 问题: 用sql语言查询连续三天人流量超过100的体育馆的信息 思路: sql语言不是很熟练,这里的方法也很暴力,就是将大于100人流量的体育馆记录全部做连接,然后筛选出id相邻3个的。。 代码: 阅读全文
posted @ 2019-01-27 20:54 leo_lee 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 问题: 给出一组单词,找出完全不相同的两个单词(彼此没有相同的字母)的最大长度乘积 思路: 一开始实现了一种暴力搜索方式,遍历所有单词组合,判断两个单词是否有字母相同,没有才进行计算长度,比较最大值。这种方法跑了300ms 后面在讨论区看到一种方法。因为字母只有26位,而int的长度有32位,我们可 阅读全文
posted @ 2019-01-24 16:59 leo_lee 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 问题: 给出4个点,判断这四个点能否构成一个正方形 思路: 一个正方形意味着4条边相等,四个角都为直角。我就简单地先计算p1到p2,p3,p4的三个向量,然后判断向量v2,v3,v4之间,有哪两个向量是垂直的(点积等于0)。 找出2个垂直向量之后(例如v2,v3),就判断这两个向量的长度是否相等,而 阅读全文
posted @ 2019-01-24 13:41 leo_lee 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 目标: 输入两个十进制数的字符串,输出它们的和 思路: 这道题有两个思路,一个是最容易想到的,就是类小学加法,一位一位的加,记录是否要进位,一位一位地输出结果。 而我的思路是利用字符串分割,将比较大的数字加法,分成每8位的相加,这里就要处理好分割计算后,进位的处理,以及字符串是否需要补零的操作(因为 阅读全文
posted @ 2019-01-10 12:08 leo_lee 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 目标: 输入两个数组,输出它们的交集。 思路: 用一个set来保存结果,遍历数组一中的元素是否数组二中存在。 代码: 阅读全文
posted @ 2019-01-09 13:05 leo_lee 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 目标: 给出一个整数,判断它的二进制数的每一位是否交替的 思路: 用余二方式来获取整数的每一位,用一个变量来记录上一位,从而判断是否每一位都相反。 代码: 阅读全文
posted @ 2019-01-09 12:22 leo_lee 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 主要问题: 输入一个分数加减的字符串,进行计算并输出分数 主要思路: 对字符串分割出每一个分数(包含符号),然后用两个vector来分别存分子和分母。 解析字符串后,对所有分母找他们的最小公倍数,然后对分子进行相应的加倍后加减,算出总和。 最后计算分子总和与分母最小公倍数的最大公约数,进行化简,输出 阅读全文
posted @ 2019-01-07 15:32 leo_lee 阅读(184) 评论(0) 推荐(0) 编辑