摘要: 给定一个字符串,逐个翻转字符串中的每个单词。 示例 1: 示例 2: 示例 3: 说明: 无空格字符构成一个单词。 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。 实现代码: 阅读全文
posted @ 2020-04-10 09:27 Koshkaaa 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为 非空 字符串且只包含数字 1 和 0。 示例 1: 示例 2: 提示: 每个字符串仅由字符 '0' 或 '1' 组成。 1 字符串如果不是 "0" ,就都不含前导零。 阅读全文
posted @ 2020-04-08 11:43 Koshkaaa 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 今天是算法和数据结构专题的第1篇文章,我们一起来聊聊动态规划的最小编辑距离。 概述 最小编辑距离(Minimum Edit Distance)本身是的一个NLP中的一个概念,最小编辑距离旨在定义两个字符串之间的相似度(word similarity)。定义相似度可以用于拼写纠错,计算生物学上的序列比 阅读全文
posted @ 2020-04-06 10:29 Koshkaaa 阅读(875) 评论(0) 推荐(3) 编辑
摘要: 给定一组 不含重复元素 的整数数组 nums ,返回该数组所有可能的子集(幂集)。 说明: 解集不能包含重复的子集。 示例: 在它们的指数级解法中,要确保生成的结果 完整 且 无冗余 ,有三种常用的方法: 递归 回溯 基于二进制位掩码和对应位掩码之间的映射字典生成排列/组合/子集(位运算) 位运算解 阅读全文
posted @ 2020-04-03 10:12 Koshkaaa 阅读(116) 评论(0) 推荐(1) 编辑
摘要: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 示例 2: 挺简单的,因为楼主之前就常用位运算符就很快解出来了 使用无序map(比map明显加快很多100ms 阅读全文
posted @ 2020-04-02 21:05 Koshkaaa 阅读(172) 评论(0) 推荐(1) 编辑
摘要: 原地算法(in place algorithm) 在计算机科学中,一个 原地算法(in place algorithm) 基本上不需要额外辅助的数据结构,然而,允许少量额外的辅助变量来转换数据的算法。当算法运行时,输入的数据通常会被要输出的部分覆盖掉。不是原地算法有时候称为 非原地(not in p 阅读全文
posted @ 2020-04-02 16:50 Koshkaaa 阅读(1536) 评论(0) 推荐(1) 编辑
摘要: 记录dalao的位运算骚操作 根据百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1 即为活细胞(live),或 0 即为死细胞(dead)。每个细胞 阅读全文
posted @ 2020-04-02 16:28 Koshkaaa 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 单链表的反转可以用递归、非递归和栈的方法实现 链表节点定义: 1、栈 2、递归 利用递归,直到链表的最后一个节点,用一个指针指向该节点,作为反转后的链表的头节点 在递归返回的过程中,让该节点的下一个节点指向该节点$(head next next=head)$, 并让该节点指向$NULL$。这样就从链 阅读全文
posted @ 2020-04-01 18:34 Koshkaaa 阅读(261) 评论(0) 推荐(1) 编辑
摘要: 冒泡排序(BubbleSort) **基本思想:**两个数比较大小,较大的数下沉,较小的数冒起来。 过程: 比较相邻的两个数据,如果第二个数小,就交换位置。 从后向前两两比较,一直到比较最前两个数据。最终最小数被交换到起始的位置,这样第一个最小数的位置就排好了。 继续重复上述过程,依次将第2.3.. 阅读全文
posted @ 2020-04-01 11:13 Koshkaaa 阅读(28) 评论(0) 推荐(1) 编辑
摘要: Dijkstra 算法是处理单源最短路径的有效算法,但它对存在负权回路的图就会失效。这时候,就需要使用其他的算法来应对这个问题,Bellman Ford(中文名:贝尔曼 福特)算法就是其中一个。 Bellman Ford 算法不仅可以求出最短路径,也可以检测负权回路的问题。该算法由美国数学家理查德• 阅读全文
posted @ 2020-03-30 12:04 Koshkaaa 阅读(450) 评论(0) 推荐(1) 编辑
摘要: Dijkstra 算法(中文名:迪杰斯特拉算法)是由荷兰计算机科学家 Edsger Wybe Dijkstra 提出。该算法常用于路由算法或者作为其他图算法的一个子模块。举例来说,如果图中的顶点表示城市,而边上的权重表示城市间开车行经的距离,该算法可以用来找到两个城市之间的最短路径。 算法过程 我们 阅读全文
posted @ 2020-03-30 11:54 Koshkaaa 阅读(943) 评论(0) 推荐(0) 编辑
摘要: memset函数 按照字节填充某字符 在头文件里面 fill函数 按照单元赋值,将一个区间的元素都赋同一个值 在头文件里面 因为memset函数按照字节填充,所以一般memset只能用来填充char型数组,(因为只有char型占一个字节)如果填充int型数组,除了0和 1,其他的不能。因为只有000 阅读全文
posted @ 2020-03-30 11:05 Koshkaaa 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 请你实现一个类 UndergroundSystem ,它支持以下 3 种方法: 1. 编号为 id 的乘客在 t 时刻进入地铁站 stationName 。 一个乘客在同一时间只能在一个地铁站进入或者离开。 2. 编号为 id 的乘客在 t 时刻离开地铁站 stationName 。 3. 返回从地 阅读全文
posted @ 2020-03-29 13:17 Koshkaaa 阅读(285) 评论(0) 推荐(0) 编辑
摘要: “六度空间”理论又称作“六度分隔(Six Degrees of Separation)”理论。这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过五个人你就能够认识任何一个陌生人。”如图1所示。 图1 六度空间示意图 “六度空间”理论虽然得到广泛的认同,并且正 阅读全文
posted @ 2020-03-26 19:57 Koshkaaa 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 给定一个有 N 个顶点和 E 条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到 N −1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。 输入格式: 输入第1行给出2个整数 N (0 using namespace std; define MAX 阅读全文
posted @ 2020-03-26 19:15 Koshkaaa 阅读(284) 评论(0) 推荐(0) 编辑