- 博客(122)
- 资源 (1)
- 收藏
- 关注
原创 Python多线程的简易使用
python的多线程简易使用import multiprocessing as mpdef show(ctx, proc): ‘’‘多线程执行的主体’‘’ for i in ctx: print('ctx: %d, proc: %d' %(i, proc))def mul_show(ctx, proc_num): ‘’‘show 函数多线程执行’‘’ ...
2019-09-05 23:43:43 356
原创 python 生成器 yield
迭代器在说生成器之前,我们先讲讲迭代器: 迭代器包括:list, set, dict等,一个比较明显的例子是都能用for in 的形式遍历;def iter(n): i = 0 l = [] while i <n: l.append(i) i+=1 return lfor i in iter(3): pri...
2018-06-30 11:04:51 459
原创 三球排序问题
题目:有三种颜色的球,白色(0表示),红色(1表示),蓝色(2表示)。 给出序列[2,1,0,1,2,0,0,1,2],请按照白色,红色,蓝色给这个序列重新排序。 得到的结果为[0,0,0,1,1,1,2,2,2]。算法的时间复杂度为O(N)。思路:1 使用三个指针 begin, end, current。begin指向头部,end指向尾部,current指向头部。2 指针的运...
2018-03-18 15:55:09 2963
原创 C++ priority_queue (优先级队列)的使用
priority_queue的内部实现是堆,本问介绍了如何利用优先级队列实现大顶堆,小顶堆,以及自定义数据类型的排列。#include <iostream>#include <queue>using namespace std;struct Node{ int val; int priority; Node(int val, int ...
2018-03-06 22:25:31 629
原创 python 的多线程以及锁定
下面的代码主要是使用一个类对外部数据(myList)进行修改,由于两个线程同时对myList修改,在不加锁的情况下,可能导致数据被不安全修改。 读者可尝试将“开启锁”和“释放锁”注释,重运行,看效果。#!/usr/local/bin/python# coding: utf-8import threadingimport timeclass ChangeVal(threading.
2018-01-20 15:49:00 333
原创 python list.append()是没有返回值的
今天写leetcode的时候,被这个问题卡了好久。主要是平时没注意。d = dict()d[0] = [0]# 我们希望往d[0]添加一个元素d[0] = d[0].append(1)# d = {0:None} 因为 list.append() 方法是没有返回值的# 正确做法为d[0].append(1)# d= {0, [0,1]}
2018-01-15 15:52:10 3716
原创 C++ 字符串的查找,替换和子串
int main() { string s = "12+13"; // 查找 int index = s.find("+"); // 替换, (起始位置, 子串长度, 替换后的值,这里替换为空,相当于删除) string ss = s.replace(index, 1, ""); // 子串 string sub = s.substr(0,
2018-01-10 20:57:12 4046
原创 C++ string 和 int, float double long数据类型的转换
int main() { int val = 10; // int -> string string s = to_string(val); // str -> int int i = atoi(s.c_str()); // str -> float double f = atof(s.c_str()); // str -> long
2018-01-10 20:51:14 433
原创 C++ 成员函数后面加 const
c++ 成员函数后面的const, 表示传入该成员中的隐藏指针 “this” 是const类型的。这表示在该成员中不能修改其他成员变量。class Test{public: int val; void set(int i) const { this->val = i; //error: 不能用const类型的this修改其他成员;
2018-01-10 16:59:23 507
原创 C++ 中使用for循环和迭代器遍历容器
之前一直看的是第四版的《C++ Primer》,里面貌似只介绍了用迭代器遍历容器(可能是受当时版本所限),这里记录下如何用for循环来遍历容器(也可遍历普通数组)class Solution{ // C++ 中默认的成员函数类型是private, 从java转过来的程序员需要注意;public: void traverse_for(vectorint> vec) {
2018-01-06 16:22:29 8205
原创 快速排序的C++ 实现
class Solution {public: // 入口程序 void quickSort(vector<int> &vec) { int L = 0; int R = vec.size()-1; int *pVec = &vec[0]; QuitSort(pVec, L, R); } int get
2017-12-25 20:35:05 241
原创 C++ 链表的归并排序
void disp_nodeList(ListNode *p) { while (p!=NULL) { disp(p->val); p = p->next; }}class Solution {public: ListNode* sortList(ListNode* head) { if (head==NULL || hea
2017-12-25 18:58:56 1006
原创 C++ 指针数组 & 指向数组的指针
参考自《C++ Primer》template <typename T>void disp(T i) { cout<<i<<endl;}int main() { int i = 0; int j = 1; int arr[2][2] = {{1,2},{3,4}}; // 长度为2的指针数组 int *p[2]; p[0] = &i;
2017-12-19 14:25:27 2577
原创 C++ const 指针 & 指向const对象的指针
参考自 《C++ Primer》int main() { int i = 0; int j = 1; // const 指针,指针内容不可修改 int *const p = &i; p = &j; // error, 由于p被定义为const指针,因此其指向的物理地址是不可修改的 *p =10; // right, 通过const指针可以修改其所指对象
2017-12-19 14:00:32 359
原创 C++ 中引用(reference)和指针的区别
参考自《C++ Primer》众所周知,引用和指针都允许用户简介的访问对象,本文谈谈这两者的区别: * 1 引用创建之时必须初始化,且不可修改(即不可让引用指向其他对象,只能通过引用修改其原本的对象); * 2 对引用赋值,可以修改引用指向的对象; 对指针赋值,修改指针所指向的地址int main() { int i = 1; // 定义引用 int &r = i;
2017-12-18 14:56:23 385
原创 C++ 指针的两种操作,通过指针赋值 & 对指针赋值
// 打印函数template <typename T>void disp(T i) { cout<<i<<endl;}int main() { int i = 1; int *p = &i; *p = 2; // 通过指针赋值 disp(i); int j = 10; // 对指针赋值,将指针p指向j p = &j;
2017-12-18 14:42:04 65341 1
原创 python DataFrame 取差集
需求:给定一个dataframe和一个list,list中存放的是dataframe中某一列的元素,删除dataframe中与list元素重复的行(即取差集)。 在网上搜了一圈,好像没看到DataFrame中取差集的方式,所以自己写了一个。方法比较繁琐,如果有更简便的方式,请留言。import pandas as pddata = [[1,2,3],[2,3,4],[3,4,5],[4,5,6]
2017-11-24 16:52:35 22691 8
原创 使用Tensorflow的slim库进行迁移学习
由于slim库不是tf的核心库,因此需要到github下载相关代码,这里假设我的工作目录为:/home/hiptonese/MigrationLearning1 下载代码:https://github.com/tensorflow/models2 将下载好的代码放到工作目录下3 下载你所需要的模型的checkpoint文件(该文件存放了模型预训练的变量值),这里列出了各个常用模型的ckpt文件
2017-11-22 11:33:54 3430
原创 Ubuntu 中anaconda为jupyter添加kernel
之前安装tensorflow的时候利用anaconda 创建了环境tensorflow(python=3.5),但是启动环境:source activate tensorflowjupyter notebook执行了上述命令后,jupyter启动的内核任然是anaconda默认的内核(python 3.6),该内核中不存在我已经安装好的tensorflow。现在的问题是,如何往jupyter中添加
2017-11-14 17:03:05 2268
原创 java 实现的simhash中文指纹项目
源码地址 https://github.com/yangydeng/SimhashForChineseimhashForChinese 中文的simhash指纹生成工具。 功能包括:利用simhash算法产生文本对应的指纹,可用指纹对照的方式去重;加入高频词过滤机制;可自行设置特殊词性的权重;可自行设置停用词/停用词性;感谢hanlp开源项目提供的分词以及词性标注功能;http
2017-11-06 10:25:42 2618
原创 java 日期规整化
之前在项目中写了一个用于规整时间格式,在Github上开源相关部分。地址:https://github.com/yangydeng/StringTransferUtils/blob/master/src/main/java/Utils/DateTimeUtil.java代码效果:public static void main(String[] args) { /
2017-11-04 21:29:57 555
原创 Java 遍历利用entry遍历Map时类型转换的问题
public class test { public static void main(String[] args) { Map<Integer,String> map = new HashMap<>(); for (int i=0;i<5;i++) { map.put(i,Integer.toString(i)); }
2017-10-31 20:41:19 2446
原创 机器学习中,如何利用训练集&测试集来判断 方差(varience)& 偏差(bias)
内容基于NG的课程varience and bias tardeoff假设我们需要对图片中是否是“猫”做出判断,并且数据集D给出的标签是完全正确的。现在将数据集切分成训练集trainingSet 和 测试集testingSet,训练出了多个模型,并得出以下结果: 模型 训练集的准确率 测试集的准确率 结论 A 1% 1.2% low bias & low varienc
2017-10-31 13:40:46 3119
原创 Python numpy 中 keepdims 的含义
keepdims主要用于保持矩阵的二维特性import numpy as npa = np.array([[1,2],[3,4]])# 按行相加,并且保持其二维特性print(np.sum(a, axis=1, keepdims=True))# 按行相加,不保持其二维特性print(np.sum(a, axis=1))输出array([[3], [7]])array([3, 7])
2017-10-30 15:48:21 36276 5
原创 Ubuntu 16.04 安装 tensorflow
1 下载Anaconda清华的镜像,我选的anaconda3最新的版本2 安装Anacodacd 到下载文件的路径,执行bash Anan[tab]3 创建新的环境conda create -n tensorflow python=3.5.2这里特别说明一下,我看到网上有些教程直接用 python=3.5,如果直接用py3.5下载,我这里默认下载了3.5.4版本,后续无法找到tensorflow的下
2017-10-27 11:17:20 428
原创 ubuntu 下sbt镜像配置
sbt默认采用国外的镜像,这里使用阿里的镜像:cd ~/.sbt/gedit repositories 复制下面内容到文件中:[repositories]localaliyun-nexus: http://maven.aliyun.com/nexus/content/groups/public/ typesafe: http://repo.typesafe.com/typesafe/ivy
2017-09-25 14:52:02 881
原创 Java8 的日期排序
public class testSortDate { public void runApp() { String s1 = "2017-08-10 22:18:22"; String s2 = "2018-08-10 22:18:22"; String s3 = "2017-08-10 22:19:22"; List<Stri
2017-09-18 19:55:09 15558
原创 java8 的 map 排序
java8 的map 排序public class test { public static void main(String args[]) { List<Map<String,String>> mpList = new ArrayList<>(); Map<String,String> mp ; mp = new HashMap<>();
2017-09-05 10:41:54 499
原创 Java 拼接字符的两个方法
1. 用StringUtils.join()publict class test{ List<String> strList = new ArraryList<String>(); strList.add("abc"); strList.add(" def"); String str = ""; str = StringUtils.join(strList,"
2017-08-23 14:07:50 1050
原创 Java 的三目运算
public class test {public static void main(String args[]) {int a =1;int b =2;boolean flag;flag = a>b;System.out.println(flag);}} 关键句: flag = a>b; 若满足,则flag=true;
2017-08-21 09:44:06 283
原创 JSON 和 JSON数组
JSON是一种key-value的数据结构eg. {"id":"1","name":"Mike"}JSON数组是多个JSON的集合eg. {"member":[ {"name","Mike"},{"name","Tom"},{"name","Jerry"}] }多个JSON对象放在[...]之中,相互之间用逗号隔开。
2017-08-06 21:42:46 273
原创 linux的环境变量
今天梳理了一下linux的环境变量:一. 适用于linux所有用户的1. /etc/profile 该文件在用户每次登陆时会重新加载一次2. /etc/bash.bashrc 该文件在用户每次打开shell的时候会被重新加载一次,网上说不易放太多环境变量,会影响开启速率3. /etc/environment 该文件与上述不同的地方是,environment是针对
2017-08-06 21:18:05 313
原创 spark 报错:py4j.protocol.Py4JJavaError
环境:ubuntu12.04 spark 2.1.0博主使用pyspark启动spark,按照教程运行如下代码:lines = sc.textFile('README.md')lines.conut()spark报错,py4j.protocol.Py4JJavaError原来spark默认是从hdfs上都文件的,博主的文件存放在本地路径下,因此需要改为:lines = sc.textF
2017-08-06 14:30:29 23919 1
原创 java 通过map的value返回其对应的key (遍历map)
java的map是常用的数据结构,在使用中一般使用key去访问value,但是有时候也会碰到需要用value的值来找到对应的key的情况。由于map的key是唯一的,所以用key->value不会产生歧义,但是value的值可能会重复,因此通过value来返回key的话会可能会匹配到多个key值,这里我们只考虑使用迭代的方法返回第一个匹配的key值。import java.util.Has
2017-08-03 15:10:19 3955 1
原创 java 记录字符串中空格的下标
import java.util.ArrayList;import java.util.List;/** * Created by Yangyang Deng on 17-7-19. */public class test { public static void main(String args[]) { String str = "aa b bd e cc
2017-08-03 14:22:54 2487
原创 python使用类存储数据
今天review别人的代码,发现一个利用class+dic存储数据的方式:假设我们需要存储一些人的基本信息,sex,age,phone。class info: sex=None age=None phone=Noneif __name__ == "__main__": # 这里注意info()中的括号不能省略,否则不会产生新的对象,后面的赋值会覆盖前面的
2017-07-25 19:05:39 5039
原创 利用IntelliJ 创建一个Maven项目
创建Maven项目:File->new->project->maven (左侧)创建好后,我们可以在pom.xml中添加项目依赖的jar包,假设我们要添加的jar包为 json-lib:1.首先到这个网站:https://mvnrepository.com/2.然后在搜索栏中输入:json-lib;3.从弹出的结果选择你需要的版本,不知道该选哪个版本的可以选择热度较高的
2017-07-19 21:09:20 264
原创 mybatis 中 $ 与 #的区别
技术上,${value} 会在预编译之前就替换掉sql中的内容,而#{value}在预编译之后相当于一个占位符。1. 直观上,$(value)的用法相当于从字符串的层面就替换了sql语句的内容:select * from MyTable where $(value)="Mike";当我们把value="name"传入时,上述的sql将变为:select * from MyTab
2017-07-14 13:33:04 280
原创 intelliJ idea运行新的test功能时,报错:class not found "....." empty test suite
这时候有可能是intelliJ idea的加载有问题,可以尝试到工程的根目录下删除.idea文件(由于.idea是隐藏文件,查看是用ls -a),然后再重新加载项目,intelliJ会重新生成新的.idea文件,此时有可能解决标题错误。
2017-07-12 17:52:36 37240 15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人