- 博客(32)
- 收藏
- 关注
转载 Python .format(),%格式化时,对字符串编码方式的影响
1、当标准字符串和Unicode字符串在表达式中混合用时,标准字符串将被自动转换为Unicode字符串。例如:s = "hello"t = u"world"w = s + t #w = unicode(s) + t2、当一个字符串方法中使用到Unicode字符串时,结...
2020-04-13 20:56:20 492
原创 树的中序遍历
递归版: void dfs(vector<int> &res, TreeNode* root){ if(root==NULL) return; dfs(res,root->left); res.push_back(root->val); dfs(res,root-&...
2018-08-29 22:52:09 531
原创 【Python】Numpy实现增加数组维度
方法一:用None作为索引a = np.array([1,2,3]) # a.shape = (3,)a = a[None,:] # a.shape =(1,3)方法二:用np.newaxisa = np.array([1,2,3]) # a.shape = (3,)a = a[np.newaxis,:] # a.shape =(1,3)方法三:用reshape...
2018-08-29 16:15:04 3054
原创 【Python】关于列表生成的坑
生成列表今天碰到一个巨坑。。关于python列表生成,需求是我要生成一个特定长度的列表,列表中的元素为空列表,即下面的形式:[[],[],...,[]]方法1:列表表达式list_1 = [[] for _ in range(N)]方法2:maplist_2 = map(lambda x: [],range(N))方法3:列表运算。。list_3 = [[]...
2018-08-09 22:47:00 611
原创 堆排序
PushHeap//迭代void PushHeap(vector&lt;int&gt;&amp; nums,int index,int length){ int max = index; int left = index*2+1; int right = index*2+2; if(left&lt;length&amp;&amp;nums[left]&
2018-06-06 12:19:04 214
原创 归并排序
void MergeSort(vector<int> &data, vector<int> &copy, int start, int end){ if(start>=end){ copy[start] = data[start]; return; } int mid = (start+end)/...
2018-06-06 11:21:04 242
原创 插入排序
def InsertionSort(nums): for i in range(1, len(nums)): cval = nums[i] pos = i while pos > 0 and nums[pos - 1] > cval: nums[pos],nums[pos-1] = nums[pos - 1...
2018-06-05 11:34:15 165
原创 选择排序
def SelectionSort(nums): n = len(nums) end = n - 1 for j in range(n): max_ = nums[-1 - j] max_idx = -1 - j for i in range(end): if nums[i] > max_: ...
2018-06-05 11:32:43 204
原创 冒泡排序
加入提前停止的冒泡排序def BubbleSort(nums): n = len(nums) exchange_cnt = 1 while exchange_cnt > 0: exchange_cnt = 0 for i in range(1, n): if nums[i] < nums[i - 1...
2018-06-05 11:20:02 216 1
原创 快速排序【递归】【非递归】
单纯记录一下 Partition函数int Partition(vector<int>& nums, int start, int end){ if(start==end){ return start; } int index = end; int small = start-1; for(int i=start...
2018-06-04 22:58:08 199
原创 tf.shape()和tensor.get_shape()
问题数据输入的格式为input = tf.placeholder([None,xxx,xxx],dtype=tf.float32)需要得到batch的维度来进行中间Variable的初始化val = tf.zeros([batch_size,xxx,xxx],dtype=tf.float32)方法可行:val = tf.zeros([tf.shape(inp...
2018-04-11 14:52:20 3873 3
原创 2018阿里暑期实习线上编程题——数星星
题目: 对于坐标图中NxN的矩阵图中,每个节点都站着一个人,从(0,0)点往人群中看,有些人能被看到,有些人会被同一直线上的其他人挡住。问对于给定的N,能看到多少人?其实相当于计算从原点到整个矩阵的点中一共有多少种斜率,但是无法使用集合等容器,所以遍历斜率的复杂度太高。之后和同学讨论,发现一种挺巧妙的方法:对于那些被前面的人挡住的点来说,他的坐标是可以通过约分来得到该点到原点的直线上...
2018-03-22 18:58:38 1493
原创 【笔记】【Pytorch】关于torch.matmul和torch.bmm的输出tensor数值不一致问题
发现对于torch.matmul和torch.bmm,都能实现对于batch的矩阵乘法:a = torch.rand((2,3,10))b = torch.rand((2,2,10))### matmal()res1 = torch.matmul(a,b.transpose(1,2))print res1 """...[torch.FloatTensor of size
2018-01-25 11:07:23 29491 7
原创 【问题】检验神经网络中是否出现nan的方法
问题在用Keras搭建模型训练过程中,遇到了训练了几个batch之后网络中间层的输出出现了nan,基本确定是某除零操作导致,想打印前馈出现nan的样本分析分析第一反应是使用.any()函数判断有无nan存在,发现无效,原因是.any()和.all()函数只能判断可以转化为True或False的值,而nan既不等于True也不等于False google之后发现可以利用nan不等于
2018-01-22 21:27:57 1817
原创 【问题】【KERAS】【Tensorflow】关于tensorflow中的梯度为None的问题
错误ValueError: None values not supported.错误原因往前追溯Traceback/Users/laox1ao/anaconda/lib/python2.7/site-packages/keras/engine/training.pyc in _make_train_function(self) 988
2018-01-13 21:24:33 10494 4
原创 【问题】KERAS中switch方法报错解决
错误ValueError: Shape must be rank 0 but is rank 3 for 'lambda_9/cond/Switch' (op: 'Switch') with input shapes: [?,20,30], [?,20,30].错误原因keras的backend(tensorflow)的switch方法会根据输入的维度是否是多维来选择调用tf.co
2018-01-08 22:04:51 3121 2
原创 【问题】Keras AttributeError: 'Tensor' object has no attribute '_keras_history'
问题在Keras函数式模型中加入后端函数操作时出现的错误。from keras import backend as K...input1 = Input(shape(2,))input2 = Input(shape(3,))output = K.concatenate([input1,input2], axis=-1)model = Model(inputs=[input1,input2]
2017-10-13 09:55:00 16423 3
原创 2017/09/19 百度面试
1、对于数组A,求出数组中连续子序列的最大和,如[1, 2, 3, 3, -4, 3, 0]的和最大连续子序列为[1, 2, 3, 3],最大和为9。解法一:暴力遍历,两个for循环,加上求出所有子序列的和操作,算法复杂度为O(n3),若把之前的计算过的和存起来,则可减少为O(n2):def maxsum1(nums): maxsum = 0 for i in range(len
2017-09-20 00:41:19 596
原创 LeetCode-Q46-Permutations
即为对给定的不含相同元素的数组进行全排列,并输出结果。 DFS解法:def permute(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ def perm(res, s, nums, max): if len(s) == max:
2017-09-14 16:13:28 358
原创 LeetCode-Q22-Generate Paretheses
DFS:先遍历左括号,再补齐右括号def generateParenthsis(n): def dfs(res, s, l, r): if l==0 and r==0: res.append(s) if(l>0): dfs(res, s+'(', l-1, r) if(r>l):
2017-09-13 23:11:44 422
原创 关于python列表的+操作
问题在将一些字符拼接后加入到一个列表的操作中,遇到了这样的有趣事情。>>>d = []>>>d += 'a' + 'b'>>>d['a','b']可以看到,’+=’运算符并不是将整个字符串拼接后作为一个元素加入列表,而是将’+’所连接的每个字符都单独加入。>>>d += ['c'+'d']>>>d['a','b','cd']可见将拼接字符串列表化之后再加入即达到了目的。 随即想到d=d+
2017-09-12 15:29:13 445
原创 【DP】放苹果问题
题目M个相同的苹果,N个相同的的盘子,允许盘子为空,且不能重复,如(5,1,1)与(1,1,5)视为同一种放法。问共有多少种放法?DP解法: 状态: d[i][j]为i个苹果放入j个盘子的所有放法数。状态转移: A、当苹果数少于盘子数时: 无论如何摆放,有j-i个盘子一直为空,则d[i][j]=d[i][i]B、当苹果数不少于盘子数时: 1、所有的盘子都不为空,则等价于在每个盘子上放一个苹
2017-09-11 14:06:08 824
原创 【DP】TopCoder 赛题 ZigZag
题目 :测试样例:代码:DP解法,状态d[i]为列表,d[i][0]为以第i个数结尾的序列中最长ZigZag子序列长度,d[i][1]为这个序列的最后一个difference为正还是为负。状态转移有两种,一是新加入的数无法连续成ZigZag序列,则未更新长度;二是新加入的数可以连成ZigZag序列,则序列长度+1。def zigzag(s): if len(s)<2: return len(
2017-09-09 18:41:15 451
原创 Numpy中的ravel_multi_index函数
最近遇到了ravel_multi_index这个函数,官方文档看不明白,Google了一番好不容易才从一堆示例代码里理解函数的意义,记录一下。官方文档在这 这个函数主要功能为把给定的一个多维数组(函数的第一个参数)看作索引数组,索引什么呢?去索引一个形状为dims(函数的第二个参数),值为依次增大的自然数的数组中的值(可看做由list(range(N))的数组reshape(dims)而来),意义
2017-06-15 15:09:39 5865 5
原创 LeetCode-Q150-Evaluate Reverse Polish Notation
自己思路 无参考 利用栈的数据结构,从头遍历给定序列,把操作数存入栈中,遇到操作符时,将栈中前两个操作数弹出进行计算,结果继续推入栈中,知道最后一次计算完毕,弹出最后结果。代码class SolutionQ150(object): def evalRPN(self, tokens): stack = [] operations = {"+":lamb
2017-03-03 17:26:25 491
原创 LeetCode-Q451-Sort Characters By Frequency
最近加入了一个每日一题的刷题群,在上面领教了很多大牛的思路和代码,觉得获益颇丰,自己也通过学习大牛的代码来总结。自己思路 1、利用字典建立哈希表,遍历字符串记录每个字符的出现的次数。 2、对字典进行排序 3、依次输出频数从大到小的字符拼接成结果输出。参考 在建立hash_map之后,可不用对字典进行排序(增加时间复杂度)。代码class Solution(object): d
2017-02-28 23:01:20 311
原创 Python-(分类)决策树学习及实现-2017/02/27
分类决策树(Decision Tree)学习这两天在machinelearningmastery.com上学习Python实现CART(Classify And Regression Tree),把分类树从头到尾学习实现了一遍,虽然不是什么难事,还是想记录一下,就当增强增强记忆也好。算法思路分类树逻辑上即为一些连环判断的组合,以Binary Tree的结构承载这个流程,以存在于非叶节点的数据的属
2017-02-27 21:53:10 679
原创 LeetCode-Q447-Number of Boomerangs
自己思路:做之前对哈希表及在Python中的实现没有敏感概念,以及对于题目做数学思维的求解转换。参考Discuss 题意为求一个有顺序的等距三元组(i,j,k),i->j与i->k等距,且j,k有顺序。对于点组的求解可以转换为更易实现的边组求解,即对于每个点i,遍历求出与其他所有点的边长,以边长为键值将所有边长存入哈希表(字典),对于所有等值的边做排列A(n,2),任取两边即可组成所求的三元组
2017-02-04 13:04:35 300
原创 LeetCode-Q3-Longest Substring Without Repeating Characters
LeetCode-Q3-Longest Substring Without Repeating Characters自己思路 建立两个指针,外循环为首指针,内循环为尾指针,从左至右检查,每次尾指针右移将无重复字符子串存入maxlength变量,循环结束输出。问题 时间复杂度为O(n2)参考Discuss 建立字典进行已查询字符存储,利用字典的查询时间复杂度O(n)的特点,减小时间复杂度。
2017-02-01 21:02:52 302
原创 LeetCode-Q2-Add Two Numbers
LeetCode-Q2-Add Two Numbers: You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two nu
2016-12-02 19:59:57 307
原创 GRU学习记录-2016/12/01
GRU(Gated Recurrent Unit)是LSTMs网络的一种变式,主要的目的也是解决RNNs网络长时记忆的问题,通过hidden state来记忆上下文关系。GRU基本repeating module如下图所示: 图中ht为t时刻的hidden state,也为t时刻单元的输出;xt为t时刻的输出;rt为reset gate(重置,决定生成新的candidate hidden stat
2016-12-01 16:50:08 476
原创 LeetCode-Q1-TwoSum
LeetCode-Q1-TwoSum: 时间复杂度O(n2),空间复杂度O(1):对数组做排列组合的遍历,条件nums[i]+nums[j]==target;时间复杂度O(n2)找出满足条件的数后直接存入输出数组,空间复杂度O(1)时间复杂度O(n),空间复杂度O(n):创建Hashmap,将输入数组存入,空间复杂度O(n)对数组遍历一次与哈希表中的内容做条件匹配map.contains
2016-11-27 16:35:00 368
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人