随笔分类 -  数据结构与算法

摘要:任务描述:给定一个step文件,对该文件的字符串进行信息抽取,结构化的组织文件描述模型的数据。形成抽象化数据结构,存入计算机数据库。并能按照有条理结构把这些数据展示出来。 信息抽取的结果描述: 1 数据结构: 以key-value键值对形式将step文件描述的信息抽取并组织起来。 具体的,在java 阅读全文
posted @ 2019-08-02 09:05 稀里糊涂林老冷 阅读(1225) 评论(0) 推荐(0) 编辑
摘要:这是leetcode上的一道算法题 对的就是这道题,,困扰了我整整一上午,, 一直也没考虑用动态规划做,, 最终用动态规划把他解决了! 回文串: 正过来和倒过来长的一样, 比如 理总理, ***。。。 思想是这样的: 用 dp[i][j] 表示 字符串s的子串s[i:j] 是不是回文串 0表示不是 阅读全文
posted @ 2019-02-26 17:14 稀里糊涂林老冷 阅读(584) 评论(1) 推荐(0) 编辑
摘要:两个排序数组的中位数 两个排序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。 请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。 你可以假设 nums1 和 nums2 不同时为空。 示例 1: nums1 = [1, 3] nu 阅读全文
posted @ 2018-10-10 21:37 稀里糊涂林老冷 阅读(1045) 评论(0) 推荐(0) 编辑
摘要:两数之和 两数之和 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返 阅读全文
posted @ 2018-10-10 21:23 稀里糊涂林老冷 阅读(478) 评论(0) 推荐(0) 编辑
摘要:岛屿的个数 岛屿的个数 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 示例 1: 输入: 11110 11010 11000 00000 输出: 1 示例 2: 输 阅读全文
posted @ 2018-09-28 20:45 稀里糊涂林老冷 阅读(2984) 评论(1) 推荐(0) 编辑
摘要:二叉搜索树中第K小的元素 二叉搜索树中第K小的元素 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。 说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。 示例 1: 输入: root = [3,1,4,null,2], k = 1 3 / 阅读全文
posted @ 2018-09-25 23:09 稀里糊涂林老冷 阅读(1198) 评论(0) 推荐(0) 编辑
摘要:二叉树的锯齿形层次遍历 二叉树的锯齿形层次遍历 给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回锯齿形层次遍历如下 阅读全文
posted @ 2018-09-25 22:57 稀里糊涂林老冷 阅读(444) 评论(0) 推荐(0) 编辑
摘要:每个节点的右向指针 每个节点的右向指针 给定一个二叉树 struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下 阅读全文
posted @ 2018-09-25 22:56 稀里糊涂林老冷 阅读(591) 评论(0) 推荐(0) 编辑
摘要:x 的平方根 x 的平方根 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1: 输入: 4 输出: 2 示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842.. 阅读全文
posted @ 2018-09-10 22:31 稀里糊涂林老冷 阅读(885) 评论(0) 推荐(0) 编辑
摘要:要求空间复杂度O(1) 那就只能用指针不断改链表的指针, 不能建立新的内存 时间复杂度O(1) 一遍遍历 不能嵌套循环 我的思想是: 1 如果链表元素数量小于等于2个,那就无法操作 2 能操作的情况下: cur指向第一个元素 不断后移 标记奇数下标的元素 odd 指向第二个元素 不断后移标记偶数下标 阅读全文
posted @ 2018-09-08 10:54 稀里糊涂林老冷 阅读(642) 评论(0) 推荐(0) 编辑
摘要:这道题 要想解决其实不难, 开两层循环进行遍历就能实现,但是会超时 如果想要O(n) 的时间复杂度, 我考虑用哈希表来存储遍历过的元素,如果发现当前遍历的元素在哈希表里,那说明交叉点就在这 这里利用了哈希表的查找时间是O(1) 但是这种算法不能满足空间复杂度是O(1)的要求 代码像这样: 经过一段时 阅读全文
posted @ 2018-09-08 09:59 稀里糊涂林老冷 阅读(924) 评论(0) 推荐(0) 编辑
摘要:两数相加 两数相加 给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 阅读全文
posted @ 2018-09-06 21:43 稀里糊涂林老冷 阅读(344) 评论(0) 推荐(0) 编辑
摘要:这道题需要借助哈希查找key的O(n) 时间复杂度, 否则就会超时 初始化一个 哈希表\字典 dic 头指针start 初始为0 当前指针 cur 初始为0 最大长度变量 l 初始为0 用cur变量从给定字符串str的开头开始 一位一位的向右查看字符,直到整个字符串遍历完, 对每一位字符进行如下: 阅读全文
posted @ 2018-09-06 21:07 稀里糊涂林老冷 阅读(4151) 评论(1) 推荐(0) 编辑
摘要:这道题给我感觉就像一个26进制数一样。 A 就是1 B是2 。。。。 Z 是26 如果AB 两位,那就是 1 * 26 + 2 就是A 的数值*26 + B的数值 如果是MNP 三位数 那就是 M * 26^2 + N * 26^1 + P *26^0 就这样。。 阅读全文
posted @ 2018-09-05 22:56 稀里糊涂林老冷 阅读(552) 评论(0) 推荐(0) 编辑
摘要:思想: 对输入数据 把每个位数平方求和 得到结果如果是1 就返回真 否则 对这个结果递归 啥时候事后返回假: 返回假 说明进入无限循环了。 啥时候会无限循环? 某一次求平方和的结果,之前得到过这个结果,那就会无限循环了。 所以,我把每次得到的结果 都存起来,如果后面发现某一次得到结果 在之前得到过, 阅读全文
posted @ 2018-09-05 21:44 稀里糊涂林老冷 阅读(1213) 评论(0) 推荐(0) 编辑
摘要:问题描述 某国的军队由N个部门组成,为了提高安全性,部门之间建立了M条通路,每条通路只能单向传递信息,即一条从部门a到部门b的通路只能由a向b传递信息。信息可以通过中转的方式进行传递,即如果a能将信息传递到b,b又能将信息传递到c,则a能将信息传递到c。一条信息可能通过多次中转最终到达目的地。 由于 阅读全文
posted @ 2018-03-14 17:13 稀里糊涂林老冷 阅读(810) 评论(1) 推荐(1) 编辑
摘要:'''You need to find the largest value in each row of a binary tree.Example:Input: 1 / \ 3 2 / \ \ 5 3 9Output: [1, 3, 9]'''# Definition for a binary tree nod... 阅读全文
posted @ 2017-11-27 19:00 稀里糊涂林老冷 阅读(236) 评论(0) 推荐(1) 编辑
摘要:Given an array of integers, 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once.Find all the elements that appear twice in this array.Could you do it without extra spac... 阅读全文
posted @ 2017-11-27 18:13 稀里糊涂林老冷 阅读(260) 评论(0) 推荐(0) 编辑
摘要:通配符是 shell 命令中的重要功能,? 表示匹配任意 1 个字符,*表示匹配 0 个或多个字符。请使用你熟悉的编程语言实现一个字符串匹配函数,支持 ? 和 * 通配符。如 “a?cd*d” 匹配 “abcdaccd” 1 #coding:utf8 2 ''' 3 通配符是 shell 命令中的重要功能, 4 ? 表示匹配任意 1 个字符, 5 *表示匹配 0 个或多个字符。 6 ... 阅读全文
posted @ 2017-11-06 21:49 稀里糊涂林老冷 阅读(22557) 评论(0) 推荐(0) 编辑
摘要:给定一个字符串 s 和正整数 n,请使用你熟悉的编程语言输出 s 中包含不超过 n 种字符的最长子串,如 s="uabbcadbaef",n=4 时应该输出 "abbcadba"。 1 # 判断一个字符串里面有几个不同字目 2 def count_diff(s): 3 arr = [] 4 for i in s: 5 if i not in arr: ... 阅读全文
posted @ 2017-11-06 21:10 稀里糊涂林老冷 阅读(3744) 评论(0) 推荐(0) 编辑