- 博客(143)
- 收藏
- 关注

原创 人生苦短我用Python(三)——函数式编程
模块:如何使用模块面向对象编程:面向对象的概念、属性、方法、继承、多态等定制类:利用python的特殊方法定制类一.函数式编程函数式:functional,一种编程范式,函数式编程是一种抽象计算的编程模式。1. 函数式编程的特点: 把计算视为函数而非指令; 纯函数式编程:不需要变量,没有副作用,测试简单; 支持高阶函数,代码简洁.2. pytho...
2019-06-11 00:26:48
382

原创 人生苦短我用Python(二)——函数、切片、迭代、列表生成式
一.函数1.调用函数 调用函数需要知道函数的名称和参数。如果传入的参数类型和个数不匹配,就会报TypeError错误。 如调用绝对值函数:abs(-12)2.编写函数 定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号,然后在缩进块中编写函数体,函数的返回值用return语句返回。如果没有return语句,函数执行完毕也会返回结果,只是返回结果为Non...
2019-05-09 21:09:12
279

原创 人生苦短我用Python(一)——基本类型和语法
一.Python中数据类型整数:1 100 浮点数:1.23 3.14 字符串:’abc’ 布尔值:True False 可以用and、or、not来进行运算。 空值:None二.输出语句:print三.Python的注释:#四.Python的变量 变量名必须为大小写英文、数字和下划线(_)的组合,且不能用数字开头。 如:a=1 #变量a是一...
2019-05-09 15:39:59
608

原创 OpenStack基础
最近要做云有关的东西,发现自己太蠢了,对这边的东西完全不了解,so...从OpenStack开始学习一下。1.OpenStack介绍是Rackspace和NASA共同发起的开源项目; 是一系列开源软件项目的组合(这些软件开源项目之间是松耦合关系,可以独立的安装、启动和停止,只有在必要的时候才进行通讯,好处是扩展性好、安全性高,不会存在单点故障,缺点是安装和配置比较复杂); OpenSt...
2019-05-01 17:46:29
415

原创 每日一道Leetcode算法——sql题——2019.02.15
一题:Combine Two Tables 中文:Table: Person+-------------+---------+| Column Name | Type |+-------------+---------+| PersonId | int || FirstName | varchar || LastName | varcha...
2019-02-15 17:42:12
460

原创 每日一道Leetcode算法——Middle of the Linked List——2019.02.13
题干:中文:给定具有头节点头的非空的单链表,返回链表的中间节点。 如果有两个中间节点,则返回第二个中间节点。Example 1:Input: [1,2,3,4,5]Output: Node 3 from this list (Serialization: [3,4,5])返回的节点的值为3.(该节点的判断序列化为[3,4,5])。 请注意,我们返回了一个ListNode对象...
2019-02-14 17:12:29
195

原创 每日一道Leetcode算法—— Robot Return to Origin——2019.02.14
题干:中文:在2D平面上有一个从位置(0,0)开始的机器人。给定其移动序列,判断该机器人在完成移动后是否在(0,0)处结束。移动序列由字符串表示,字符move [i]表示其第i个移动。有效移动是R(右),L(左),U(上)和D(下)。如果机器人在完成所有移动后返回原点,则返回true。否则,返回false。注意:机器人“面对”的方式无关紧要。 “R”将始终使机器人向右移动一次,“L...
2019-02-14 16:07:08
424

原创 每日一道Leetcode算法——Fair Candy Swap——2019.02.03
题干:中文:Alice和Bob有不同大小的糖果棒:A [i]是Alice拥有的第i个糖果棒的大小,B [j]是Bob拥有的第j个糖果棒的大小。由于他们是朋友,他们想交换一个糖果,以便交换后,他们都有相同的糖果总量。 (一个人拥有的糖果总量是他们拥有的糖果大小的总和。)返回一个整数数组ans,其中ans [0]是Alice必须交换的直板的大小,ans [1]是Bob必须交换的直板的大小。...
2019-02-14 15:35:34
283
1

原创 每日一道Leetcode算法——Fibonacci Number——2019.02.02
题干:中文: 给定矩阵A,返回A的转置。 矩阵的转置是在其主对角线上翻转的矩阵,切换矩阵的行和列索引。Example 1:Input: [[1,2,3],[4,5,6],[7,8,9]]Output: [[1,4,7],[2,5,8],[3,6,9]]Example 2:Input: [[1,2,3],[4,5,6]]Output: [[1,4],[2,5],...
2019-01-30 21:01:55
309

原创 每日一道Leetcode算法——Fibonacci Number——2019.02.01
题干:中文:Fibonacci数字,通常表示为F(n),形成一个称为Fibonacci序列的序列,这样每个数字是前两个数字的总和,从0和1开始。即, F(0)= 0,F(1)= 1 对于N> 1,F(N)= F(N-1)+ F(N-2)。 给定N,计算F(N)。Example 1:Input: 2Output: 1Explanation: F(2) = F(1)...
2019-01-30 20:30:51
341

原创 每日一道Leetcode算法——Flipping an Image——2019.01.19
题干:中文:给定二进制矩阵A,我们想要水平翻转图像,然后反转它,并返回结果图像。水平翻转图像意味着图像的每一行都是相反的。例如,水平翻转[1,1,0]会产生[0,1,1]。反转图像意味着每个0替换为1,每个1替换为0.例如,反转[0,1,1]会产生[1,0,0]。Example 1:Input: [[1,1,0],[1,0,1],[0,0,0]]Output: [[1,...
2019-01-30 17:26:06
164

原创 每日一道Leetcode算法——N-Repeated Element in Size 2N Array——2019.01.18
题干:中文:在大小为2N的阵列A中,存在N + 1个元素,并且这些元素中的一个元素重复了N次。返回重复N次的元素。Example 1:Input: [1,2,3,3]Output: 3Example 2:Input: [2,1,2,5,3,2]Output: 2Example 3:Input: [5,1,5,2,5,3,5,4]Output: ...
2019-01-30 16:28:46
179

原创 每日一道Leetcode算法——Sort Array By Parity——2019.01.31
中文:给定一个非负整数数组A,返回一个由A的所有偶数元素组成的数组,后跟A的所有奇数元素。 您可以返回满足此条件的任何答案数组。 Example 1:Input: [3,1,2,4]Output: [2,4,3,1]The outputs [4,2,3,1], [2,4,1,3], and [4,2,1,3] would also be accepted.Note:...
2019-01-30 16:00:39
151

原创 每日一道Leetcode算法——Find All Numbers Disappeared in an Array——2019.01.30
中文:给定一个整数数组,其中1≤a[i]≤n(n 为数组的大小),一些元素出现两次,其他元素出现一次。查找未出现在此数组[1,n]中的包含的所有元素。你可以在没有额外空间和时间复杂度为O(n)的情况下完成吗?返回的列表不计入额外空间。Example:Input:[4,3,2,7,8,2,3,1]Output:[5,6]英文:Given an array of...
2019-01-30 15:29:21
177

原创 每日一道Leetcode算法——sql语句题——2019.01.01
1.leetcode-182题:写一个可以查询重复email的sql。Write a SQL query to find all duplicate emails in a table named Person.+----+---------+| Id | Email |+----+---------+| 1 | a@b.com || 2 | c@d.com || ...
2019-01-29 20:53:26
450

原创 每日一道Leetcode算法——Path Sum——2019.01.13
中文:给定二叉树和求和,确定树是否具有根到叶路径,使得沿路径的所有值相加等于给定的总和。注意:叶子是没有子节点的节点。例:鉴于以下二叉树和sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \7 2 1返回true,因为存在根到叶路径5-> 4-> 11...
2019-01-29 17:09:56
324

原创 每日一道Leetcode算法——Self Dividing Numbers——2019.01.29
中文:自分割数是一个可被其包含的每个数字整除的数字。例如,128是自分割数,因为128%1 == 0,128%2 == 0,128%8 == 0。此外,不允许自分割数包含数字零。给定数字的下限和上限,输出每个可能的自划分数的列表,如果可能,包括边界。Example 1:Input:left = 1, right = 22Output: [1, 2, 3, 4, 5, 6, 7,...
2019-01-29 16:31:29
293

原创 每日一道Leetcode算法——383.赎金信——2019.01.28
中文:给定一个任意赎金票据字符串和另一个包含所有杂志字母的字符串,写一个函数,如果赎金票据字符串可以从杂志上构建,它将返回true;否则,它将返回false。杂志字符串中的每个字母只能在赎金票据中使用一次。注意:您可以假设两个字符串仅包含小写字母。canConstruct("a", "b") -> falsecanConstruct("aa", "ab") -> fa...
2019-01-28 17:21:37
597
1

原创 每日一道Leetcode算法——移动零——2019.01.27
中文:给定一个数组nums,写一个函数将所有0移动到它的末尾,同时保持非零元素的相对顺序。Example:Input: [0,1,0,3,12]Output: [1,3,12,0,0]注意:您必须就地执行此操作,而无需复制阵列。最小化操作总数。英文:Given an array nums, write a function to move all 0's to the end...
2019-01-28 16:15:34
357

原创 每日一道Leetcode算法—— Two Sum——2019.01.22
中文:给定一个整数数组,返回两个数字的索引,使它们相加到特定目标。您可以假设每个输入只有一个解决方案,并且您可能不会两次使用相同的元素。例:数组nums = [2,7,11,15],target = 9,因为nums [0] + nums [1] = 2 + 7 = 9,返回[0,1]。英文:Given an array of integers, return indice...
2019-01-26 21:35:00
245

原创 每日一道Leetcode算法—— Maximum Width Ramp——2019.01.20
中文:给定整数数组A,斜坡是元组(i,j),其中i <j且A [i] <= A [j]。这种斜坡的宽度是j-i。在A中找到斜坡的最大宽度。如果不存在,则返回0。Example 1:Input: [6,0,8,2,1,5]Output: 4Explanation: 最大宽度斜坡达到 (i, j) = (1, 5): A[1] = 0 and A[5] = 5....
2019-01-26 21:09:33
310

原创 每日一道Leetcode算法—— Min Stack——2019.01.26
中文:设计一个支持push,pop,top和在当前时间内检索最小元素的堆栈。push(x) - 将元素x推入堆栈。pop() - 删除堆栈顶部的元素。top() - 获取顶部元素。getMin() - 检索堆栈中的最小元素。Example:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);...
2019-01-26 20:29:55
210

原创 每日一道Leetcode算法—— Single Number——2019.01.25
题目:中文:给定一个非空的整数数组,除了一个元素外,每个元素都会出现两次。找出只出现一次的唯一元素。注意:您的算法应具有线性运行时复杂性。你能不用额外的内存来实现吗? Example 1:Input: [2,2,1]Output: 1Example 2:Input: [4,1,2,1,2]Output: 4英文:Given a non-empty array...
2019-01-25 15:58:03
281

原创 每日一道Leetcode算法—— Palindrome Number——2019.01.24
中文:确定一个整数是否是回文。当它向前读取和向后读取一样时,这个整数是回文数。Example 1:Input: 121Output: trueExample 2:Input: -121Output: falseExplanation: 从左到右读取,他为-121,从右到左读取,他为121-,所以它不是一个回文数。Example 3:Input: 10Output...
2019-01-25 10:45:21
158

原创 每日一道Leetcode算法—— Best Time to Buy and Sell Stock——2019.01.23
中文:假设您有一个数组,其中第i个元素是第i天给定股票的价格。 如果您只被允许完成最多一笔交易(即买入并卖出一股股票),请设计一个算法以找到最大利润。 请注意,在购买之前不能出售股票。Example 1:Input: [7,1,5,3,6,4]Output: 5Explanation: 在第二天购买,价格为1,并且在第五天卖出,价格为6,最大利润为6-1=5Example 2:...
2019-01-23 21:10:57
164

原创 每日一道Leetcode算法——Squares Of A Sorted Array——2019.01.21
中文:给定一个整数数组A按递增顺序排序,返回每个数字的平方数组,也按有序递增顺序返回。英文:Given an array of integers A sorted in non-decreasing order, return an array of the squares of each number, also in sorted non-decreasing order....
2019-01-21 14:57:54
185

原创 每日一道Leetcode算法—— Unique Morse Code Words——2019.01.17
中文:国际莫尔斯电码定义了一种标准编码,其中每个字母映射到一系列点和短划线,如下所示:“a”映射到“.-”,“b”映射到“-...”,“c”映射到“-。-。“, 等等。为方便起见,下面给出了英文字母26个字母的完整表格:[".-","-...","-.-.","-..",".","..-.","--.","....",".
2019-01-18 12:00:11
233

原创 每日一道Leetcode算法—— Unique Email Addresses——2019.01.16
问题:英文:Every email consists of a local name and a domain name, separated by the @ sign.For example, in alice@leetcode.com, alice is the local name, and leetcode.com is the domain name.Beside...
2019-01-16 15:30:55
733

原创 每日一道Leetcode算法——Jewels and Stones——2019.01.14
你得到的字符串J代表珠宝的类型,S代表你拥有的宝石。 S中的每个分子都是你拥有的一种宝石。你想知道你有多少宝石是规定类型的珠宝。J中的字母保证每个都不同,J和S中的所有字符都是字母。字母区分大小写,因此“a”被认为是与“A”不同类型的宝石。Example 1:Input: J = "aA", S = "aAAbbbb"Output: 3Example 2:Input: ...
2019-01-15 19:12:04
208

原创 每日一道Leetcode算法——Length of Last Word——2019.01.15
中文:汉语给定字符串s由大写、小写字母和空格字符''组成,返回字符串中最后一个单词的长度。如果最后一个单词不存在,则返回0。注意:单词定义为字符序列仅由非空格字符组成。 English:Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the ...
2019-01-15 14:54:04
177

原创 java之反射Reflect
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息,以及动态调用对象方法的功能称为java语言的反射机制。1.Class类的使用(1)java中普通的数据类型类和静态的成员不属于对象。(2)类也是对象,是java.lang.Class类的实例对象。(3)Class类本身是无法new自身的...
2019-01-14 12:17:46
165

原创 排序算法(九)——堆排序
堆排序(Heap Sort)算法是基于选择排序思想的算法,其利用堆结构和二叉树的一些性质来完成数据的排序。堆排序算法的运作如下:(1)将数组变为一个大顶堆。(2)因为大顶堆的根结点为数组中的最大值,然后每次把根结点放到数组的最后面,并固定住。(3)以此类推,将前面的数字变为一个大顶堆...package cn.kimtian.sort;import java.util.A...
2019-01-11 17:37:05
169

原创 每日一道Leetcode算法——如何判断一个链表是否有环,并求出环的入口和环的长度——2019.01.12
判断一个链表是否有环有两种办法:一种最经典是定义两个指针,一个指针每次向前走一步,一个指针每次向前走两步,如果两个指针最终重合。则证明有环。一种是创建一个hash表,将每次走过的结点放入hash表中,如果结点在hash表中,则表示存在环。判断链表的入口:假设两个指针第一次相遇点为m,此时令一个指针从头结点向下走,每次走一步,令另一个指针从相遇点往下走,每次走一步,两个指针相遇的位置...
2019-01-11 17:04:57
816

原创 PHP入门--mac上安装php
最近,要开始写PHP了。。。我的内心是隐隐拒绝的,可我还是决定要学习一下PHP,然后去写PHP。毕竟我们组做PHP的小伙伴们人那么好。毕竟19年我要拥抱变化。 一.PHP及其功能(1)WEB网站的大部分数据都是存储在服务器端的,PHP就是用开处理这些存储在服务器端的数据的。PHP是运行在服务器端的。(2)跨平台:服务器可以是多种平台的服务器,比如Linux、Windows、...
2019-01-08 18:29:25
6788
4

原创 排序算法(七)——归并排序
归并排序(Merge Sort)算法就是将多个有序数据表合并成一个有序数据表。如果参与合并的只有两个有序表,则称为二路合并。对于一个原始的待排序序列,往往可以通过分割的方法来归结为多路合并排序。合并排序算法的运作如下:(1)首先将含有n个结点的待排序数据序列看成9个长度为1的有序子表。(2)将这些有序子表依次两两合并,得到长度为2的若干有序子表。(3)然后再对这些子表进行两两合并,...
2019-01-08 09:31:48
234

原创 排序算法(八)——基数排序
基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序。基数排序适用于大小数字都有,且位数不同。基数排序的算法运作方式如下:(1)首先根据个位数的数值,在走访数值时将它们分配至...
2019-01-08 09:31:29
237

原创 排序算法(五)——希尔排序
希尔排序,也称缩小增量排序或shell排序,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。希尔排序算法的运作如下:1. 将有n个元素的数组分为n/2个数字序列,第1个数据和第n/2+1个数据为一对,......2.一次循环使每一个序列对排好顺序;3.然后,再变成n/4个序列对,再次排序;4.不断重复上述过程,直到序列减少最后变为一个,也就完成了整个排序。 ...
2019-01-08 09:29:32
187

原创 排序算法 (一)——基础
1.定义:排序(sort)是将一组数据按照一定的规则来进行排列,一般按照递增或递减的顺序来进行排列,排序算法是一种基本的算法。2.排序算法的分类3.排序算法的优劣如何判断排序算法的优劣:计算的复杂度:为了全面考虑,往往从最差、平均和最好三种情况进行评价。 系统资源的占用:主要包括内存及其他资源的占用。一个好的排序应该占用少的内存资源。4.排序算法的复杂度排序方式 ...
2019-01-08 09:26:08
334

原创 排序算法(四)——插入排序
插入排序(英语:Insertion Sort)是一种简单直观的排序算法。通过对未排序的数据执行逐个插入至合适的位置而完成排序工作。插入排序算法的运作如下:1.首先对数组的前两个数据进行从小到大的排序;2.接着将第3个数据与排好序的两个数据进行比较,将第三个数据插入合适的位置;3.然后,将第4个数据插入已排好序的前3个数据中。4.不断重复上述过程,直到把最后一个数据插入合适的位置...
2019-01-07 21:52:06
281

原创 排序算法(六)——选择排序
选择排序(Selection sort)是一种简单直观的排序算法。选择排序的交换操作介于和次之间。选择排序的比较操作为次。选择排序的赋值操作介于和次之间。运作方式如下:1.首先从原始数组中选择最小的1个数据,将其和位于第1个位置的数据交换。2.接着从剩下的n-1个数据中选择次小的一个数据,将其和第2个位置的数据交换。3.不断重复上述过程,直到最后两个数据完成交换。packag...
2019-01-07 21:04:12
340
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人