上一页 1 2 3 4 5 6 7 ··· 29 下一页
摘要: 简介 工厂模式是一种常见的设计模式,该模式属于创建型模式,它提供了一种简单,快速,高效而安全地创建对象的方式。工厂模式在接口中定义了创建对象的方法,而将具体的创建对象的过程在子类中实现,用户只需要通过接口创建需要的对象即可,不用关注对象的具体创建过程。同时,不同的子类可根据需求灵活实现创建对象的不同 阅读全文
posted @ 2020-04-24 01:27 silentteller 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 简介 快速排序实际上是对冒泡排序的一种改进,通过一趟排序将要排序的数组分成两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后再对这两部分数据分别进行快速排序,整个排序过程递归进行,最终使整个数组有序。 原理 快速排序算法的原理是选择一个元素作为基准值,一般选择数组的第一个元素,将比基准值 阅读全文
posted @ 2020-04-23 01:08 silentteller 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 介绍 直接插入排序算法是一种简单,直观且稳定的排序算法。直接插入排序的基本思路是将一个元素插入到已经排好序的序列中,从而得到一个新的有序序列。 原理 直接插入排序的原理就好比抓扑克牌一样,我们每新抓到一张扑克后,会扫描已经有序的扑克牌,以升序为例,从大到小扫描扑克牌,当出现扑克小于当前的新扑克时,将 阅读全文
posted @ 2020-04-22 22:23 silentteller 阅读(642) 评论(0) 推荐(0) 编辑
摘要: 介绍 冒泡排序算法是一种简单的排序算法,它在重复的访问要排序的元素时,会依次比较相邻的两个元素,以升序为例,如果左边的元素大于右边的元素,就交换两个元素的位置,如此重复,直到没有相邻的元素需要交换位置,则排序完毕。 在排序的过程中,每一轮交换都会将最大的元素移动到数组的末端(升序),如同气泡上浮一般 阅读全文
posted @ 2020-04-21 22:42 silentteller 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个放有字符和数字的数组,找到最长的子数组,且包含的字符和数字的个数相同。 返回该子数组,若存在多个最长子数组,返回左端点最小的。若不存在这样的数组,返回一个空数组。 示例 1: 输入: ["A","1","B","C","D","2","3","4","E","5","F","G"," 阅读全文
posted @ 2020-03-20 16:16 silentteller 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 题目: 数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗? 注意:本题相对书上原题稍作改动 示例 1: 输入:[3,0,1] 输出:2 示例 2: 输入:[9,6,4,2,3,5,7,0,1] 输出:8 分析: 先利用高斯求和,然后依次 阅读全文
posted @ 2020-03-20 15:30 silentteller 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 题目: 设计一个函数把两个数字相加。不得使用 + 或者其他算术运算符。 示例: 输入: a = 1, b = 1 输出: 2 提示: a, b 均可能是负数或 0 结果不会溢出 32 位整数 分析: 剑指Offer-48.不用加减乘除做加法(C++/Java)参考这篇讲解。 程序: class So 阅读全文
posted @ 2020-03-20 15:26 silentteller 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个包含正整数、加(+)、减(-)、乘(*)、除(/)的算数表达式(括号除外),计算其结果。 表达式仅包含非负整数,+, - ,*,/ 四种运算符和空格 。 整数除法仅保留整数部分。 示例 1: 输入: "3+2*2" 输出: 7 示例 2: 输入: " 3/2 " 输出: 1 示例 3 阅读全文
posted @ 2020-03-20 15:14 silentteller 阅读(449) 评论(0) 推荐(0) 编辑
摘要: 题目: 设计和构建一个“最近最少使用”缓存,该缓存会删除最近最少使用的项目。缓存应该从键映射到值(允许你插入和检索特定键对应的值),并在初始化时指定最大容量。当缓存被填满时,它应该删除最近最少使用的项目。 它应该支持以下操作: 获取数据 get 和 写入数据 put 。 获取数据 get(key)  阅读全文
posted @ 2020-03-20 14:48 silentteller 阅读(483) 评论(0) 推荐(0) 编辑
摘要: 题目: 设计一个算法,找出数组中两数之和为指定值的所有整数对。一个数只能属于一个数对。 示例 1: 输入: nums = [5,6,5], target = 11 输出: [[5,6]] 示例 2: 输入: nums = [5,6,5,6], target = 11 输出: [[5,6],[5,6] 阅读全文
posted @ 2020-03-18 17:25 silentteller 阅读(239) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 29 下一页