- 博客(46)
- 收藏
- 关注
原创 Leetcode49--字母异位词分组
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]思路: 没什么可说的,直接是先将各个字符串内部按照字典排序(开辟额外空间),然...
2019-11-07 13:43:40 261
原创 Leetcode22--括号生成
题目描述:给出n代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出n=3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]思路:很明显应该利用递归来解决---即回溯。n对括号意味着左右括号各有n个,递归出口很明显是当代表左右的计数变量l...
2019-10-22 18:01:35 252
原创 Python中 / 与 // 的含义
看别人源码时老是看见这两种运算符1 在 Python 2.2中 : 要引用: from __future__ import division " / "就表示 浮点数除法,返回浮点结果;" // "表示整数除法。 2 Python 3以后 : " / "就表示 浮点数除法,返回浮点结果;" // "表示整数除法...
2019-09-20 20:55:27 3179
转载 Tensor中的激活函数
ReLU是常用在隐藏层的激活函数,Softmax是常用在输出层的激活函数,Cross EntropyReLU数学公式:f(x)=max(x,0)当x小于0时,y=0,当x >= 0时,y=x。Softmax数学公式:Softmax示例将任意一组输入,压缩为一组和为1的数。TensorFlow实现:x = tf.nn.softmax...
2019-07-30 23:46:18 326
原创 Leetcode--93 复原IP地址
给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。示例:输入: "25525511135"输出:["255.255.11.135", "255.255.111.35"]首先我们要了解IP地址格式的要求:即是一个32位长的二进制数(默认为IPV4),共有四部分,每部分长8位。取值范围为0~255,因此问题就转换成为对字符串的分割问题。另外还要注意的是当一...
2019-05-20 18:17:58 288
转载 【操作系统】程序,进程,作业之间的区别和联系
程序与进程之间的区别:(1)进程更能真实地描述并发,而程序不能。(2)进程由程序和数据两部分组成,进程是竞争计算机系统有限资源的基本单位,也是进程处理机调度的基本单位。(3)程序是静态的概念;进程是程序在处理机上一次执行的过程,是动态的概念。(4)进程有生存周期,有诞生有消亡。是短暂的;而程序是相对长久的。(5)一个程序可以作为多个进程的运行程序;一个进程也可以运行多个程序。...
2019-04-27 17:43:11 5558 2
转载 【操作系统】批处理、分时、实时各个操作系统特点
1、批处理操作系统的主要特点是:脱机、多道和成批处理。脱机是指用户脱机使用计算机,即用户提交作业之后直到获得结果之前几乎不再和计算机打交道。多道是指多道程序运行,即按多道程序设计的调度原则,从一批后备作业中选取多道作业调入内存并组织它们运行;成批处理是指操作员把用户提交的作业组织成一批,由操作系统负责每批作业间的自动调度。 批处理系统自动化程度比较高,系统吞吐量大,资源利用率高,...
2019-04-27 17:32:15 15992
原创 POJ2386--Lake Counting
水题,计算八连通的水洼的数量,很明显应该用DFS。将在每趟中已遍历到的积水部分变为'.'直到该趟中所有位置都不能改变位置,统计趟数(调用DFS函数的次数)即可。#include<iostream>using namespace std;const int Max = 103;char field[Max][Max];int n, m;void DFS(int x, ...
2018-12-31 12:56:11 195
原创 leetcode957(contest 113)--N 天后的牢房
这道是该场里边的第一道(菜,没做出来),当然确实比较难。从easy难度的角度出发我们一般都是想到用O(N²)的复杂度写一个更新函数,然后遍历到该天后返回,但提交后发现超时,且只有一个例子通过,到这时我们应该转换思路。题目告诉我们相当于共8个信号,因此有2的8次方共256种状态,所以当N足够大时,必然形成环(当然一般是局部的)。所以我们应该求出来该环,即一个二维数组,之后再通过数学计算将N缩小为...
2018-12-22 13:43:19 486
转载 (转)归并排序图解及代码实现
基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。分而治之 可以看到这种结构很像一棵完全二叉树,本文的归并排序我们采用递归去实现(也可采用...
2018-12-18 20:08:37 227
原创 POJ--1017 装箱问题(贪心)
地址:POJ1017大意是只有6*6规格的箱子来装(虽然是描述三维的,但因为高度相同,因此忽略掉),给你若干个从1*1到6*6规格的箱子,求所需最小箱子数。 思路:很明显应该利用贪心,即优先从最大规格的箱子数来考虑,然后因为在装完较大规格的箱子后,该箱子可以存在剩余空间,所以仍应该利用,且仍旧优先装较小规格中较大的箱子。6规格的箱子只能装一个且空间全占满,无剩余;5规格的箱子装一个,且...
2018-12-13 23:42:37 2352 1
原创 最大子数组II
给定一个数组A,按照下图计算函数d(A)的值即求两个不连续(重叠)子数组之和的最大值,和lintcode上的那道一样。 解:利用动态规划,不过和之前单独的计算整体的最大子数组不同,我们建立两个数组left和right,分别记录两子数组--从左向右遍历和从右向左遍历,代码如下:#include<iostream>#include<vector>#in...
2018-12-04 22:46:59 206
原创 leetcode--949(contest113) 给定数字能组成的最大时间
太菜了,想了半天没做自己出来这个easy题,下午去翻了翻solution,发现python和我一开始想的差不多,应该是自己搞的过于复杂化了。。。其实在获得了数组的全排列(共n!种,DFS实现)后,用一个整数time来记录当前有效时间的最大值(这块我看不太懂,用两个即hour和minute来遍历的话是不对的)遍历,注意time是用2个数--即hour*60+minute得到的。之后按照pytho...
2018-12-02 17:51:25 536
转载 Leetcode之正则表达式匹配(Regular Expression)
先上代码:class Solution {public: bool isMatch(string s, string p) { if (p.empty()) //如果p为空的话返回值也为空 if ('*' == p[1])//如果下一个字符('*'不能出现在字符串的开头)为'*' // x* matches empty str...
2018-12-02 17:28:09 353
原创 图论基础---无向图的建立(矩阵和链表两种形式)
首先给出矩阵的,代码如下:#include<iostream>#include<string>using namespace std;typedef char verTexType;typedef bool edgeType;#define maxVex 100#define maxValue 65535typedef struct { int v...
2018-11-29 19:50:26 893
转载 拓扑排序(Topological Sorting)
文章原作者为@神奕 https://blog.csdn.net/lisong694767315/article/details/45543451 一、什么是拓扑排序在图论中,拓扑排序(Topological Sorting)是一个有向无环图(DAG, Directed...
2018-11-28 19:46:13 194
原创 Leetcode--171 Excel表列序号
给定一个Excel表格中的列名称,返回其相应的列序号。例如, A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...示例 1:输入: "A"输出: 1示例 2:输入: "AB"输出: 28示例 3:...
2018-11-21 21:23:06 162
转载 最短路径问题---Dijkstra算法详解
1、最短路径问题介绍问题解释: 从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径,称为最短路径解决问题的算法:迪杰斯特拉算法(Dijkstra算法)弗洛伊德算法(Floyd算法)SPFA算法这篇博客,我们就对Dijkstra算法来做一个详细的介绍2、Dijkstra算法介绍算法特点:迪科斯彻...
2018-11-17 16:11:34 446
原创 POJ--2760 最长升序子序列
一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 < i2 < ... <iK <= N。比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些上升子序列,...
2018-10-30 23:52:39 528
原创 Leetcode102--二叉树的层次遍历
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]] 刚入门数据结构,掌握的少也不太好,加上比较笨结果这道题想了半天...
2018-10-23 21:06:27 171
原创 Leetcode--53 最大子序和
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 easy难度,当然也是一道比较典型的题。我们当然可以利用BF来得到目的值,但时间复杂度为O(n²),于是可以来考虑一个为O(n)的解法。首...
2018-10-20 21:45:08 146
原创 Leetcode--257 二叉树的所有路径
给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。示例:输入: 1 / \2 3 \ 5输出: ["1->2->5", "1->3"]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3 首先要写一下我自己的错误的思路:利用回溯,到了叶子结点后将当前遍...
2018-09-20 21:45:49 326
原创 Leetcode--60 第k个排列
题干:给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:"123" "132" "213" "231" "312" "321"给定 n 和 k,返回第 k 个排列。说明:给定 n 的范围是 [1, 9]。 给定 k 的范围是[1, n!]。示例 1:输入:
2018-09-16 00:25:37 447
转载 Java中父类与子类构造方法的关系
首先总结规律:java继承中子类是不会继承父类的构造函数的,只是必须调用(隐式或者显式),因为子类是基于父类产生的。下面是一段代码:public class TestDriver{ public static void main(String[] args){ SonClass s=new SonClass(66); }}class FooClass{ public FooCl...
2018-06-22 23:15:18 652
原创 LeetCode--78 子集
Description:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]先考虑非递归方法,由离散数学的相关知识我们可以知道,一个n元的集合的幂集大小为2的n...
2018-06-21 23:51:04 264
原创 关于python中yield关键字的一些个人理解
之前在别人的一些code和python爬虫的学习中经常遇到这个关键字,一开始以为和循环没有什么区别,后来粗略地看了一下说明,结果越看越迷糊,加之发现了自己存在的知识漏洞,因此不得不好好学习一下相关概念要理解yield,就必须先理解迭代(iteration)的相关概念.下边是一段摘自百度百科的定义:迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每...
2018-06-16 18:34:33 1865 1
原创 leetcode--89 格雷编码
格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数 n,打印格雷码序列。格雷码序列必须以 0 开头。例如,给定 n = 2,返回 [0,1,3,2]。其格雷编码是:00 - 001 - 111 - 310 - 2说明:对于给定的 n,其格雷编码的顺序并不唯一。例如 [0,2,3,1] 也是一个有效的格雷编码顺序。题意很好理解,但相关...
2018-06-14 19:46:13 1084
原创 leetcode--203 删除链表中的节点
删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5注意链表是乱序的,而且节点值为val的可能有多个这道easy题想了半天,还是没有做出来。最开始想的是按照之前的链表题那样利用pre和cur两个指针两个指针,前者所经过的为已经去掉了待删除节点的...
2018-06-11 22:48:17 586
原创 leetcode--29 两数相除
Description: 给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。示例 1:输入: dividend = 10, divisor = 3输出: 3示例 2:输入: dividend = 7, divisor = -3输出:...
2018-05-25 01:13:49 4115 1
原创 leetcode--10 正则表达式匹配
Description: 给定一个字符串 (s) 和一个字符模式 (p)。实现支持 '.' 和 '*' 的正则表达式匹配。'.' 匹配任意单个字符。'*' 匹配零个或多个前面的元素。匹配应该覆盖整个字符串 (s) ,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。 p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:...
2018-05-23 00:03:20 841
转载 leetcode--71 简化路径
Description:给定一个文档 (Unix-style) 的完全路径,请进行路径简化。例如,path = "/home/", => "/home"path = "/a/./b/../../c/", => "/c"边界情况:你是否考虑了 路径 = "/../" 的情况?在这种情况下,你需返回 "/" 。此外,路径中也可能包含多个斜杠 '/' ,如 "
2018-05-18 23:57:16 387
原创 leetcode--62 不同路径
Description:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m 和 n 的值均不超过 100。示例 1:输入: m = 3, n = 2输出: 3解释:从左上...
2018-05-18 23:37:50 300
原创 leetcode--61 旋转链表
Deciription:给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转
2018-05-14 23:05:12 800
转载 解递归式的两种方法(代换+递归树)
算法设计中经常会用到递归,利用递归式的方法可以清晰地显示算法的整个过程,而对于分析算法的复杂度,解递归式就有了用处,这里的方法来自于《算法导论》。(一)代换法:实质上就是数学归纳法,先对一个小的值做假设,然后推测更大的值得正确性。由于是数学归纳法,那么我们就需要对值进行猜测。现在,我们看下面这个例子:我们先假设一个结论T(n) = O(lg(n - b)),并且假设对T(n / 2上取整)成立(这...
2018-05-12 23:40:12 8037
转载 leetcode-830 Positions of Large Groups
Description:In a string S of lowercase letters, these letters form consecutive groups of the same character.For example, a string like S = "abbxxxxzyy" has the groups "a", "bb", "xxxx", "z" and "yy&quo
2018-05-08 22:36:27 586
原创 c++中的find函数
std::unordered_map::find构成:iterator find(const Key& key); (1)const_iterator find(const Key& key) const; (2)1.2) Finds an element with key equivalent to key.即在一个map中,按照键(key)的值寻找对应的值(value)...
2018-04-30 22:13:01 579
转载 leetcode-49 Group Anagrams(字母异位词分组)
Descripiton:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan&qu
2018-04-30 21:46:39 909
转载 链表的反转(递归实现)
此处明确了实现的方法,另外非递归(迭代)的方法也可行。首先我们需要知道一些基础知识--即递归的相关概念。递归(Recursion)即函数自己调用自己,若问题可以使用递归来解决,则必须满足以下三个条件:1.可以要把解决的一个问题转化为一个新的问题,这个新问题的解决思路与原来相同,只是在有规律的变化(例如递增递减).说明:递归可以解决的方法,非递归一定也可以.2.可以应用这个转化过程使问题得到解决。说...
2018-04-27 22:59:44 7809
原创 leetcode-66 加一
给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。即将该数看成一个整数...
2018-04-24 23:35:47 197
原创 [HDU] 火柴棒等式
Description:给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。用火柴棍拼数字0-9的拼法如图所示: 注意: 1. 加号与等号各自需要两根火柴棍 2. 如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0) 3. n根火柴棍必须全部用上Input输入共一行,又一个整数n(n<=24...
2018-04-20 22:57:45 365
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人