- 博客(60)
- 收藏
- 关注
原创 博客地址搬家,搬移到博客园了http://www.cnblogs.com/xqn2017/
由于CSDN经常保存失败,决定搬移到博客园了,以后CSDN停止更新,新的博客地址,http://www.cnblogs.com/xqn2017/
2017-12-08 17:34:40 393
原创 普通浮点数转半精度工具实现
工作中遇到的小工具制作,直接压成exe就可以用了功能:输入文件,将文件中的一列浮点转为一列半精度浮点(半精度浮点)或者两列浮点转为一列复数型半精度浮点,输出为同级目录源文件名+Out.dat,输入0退出case1:文件中是一行数据0.5,那么输出就是0x3c00case2:文件中一行数据是 0.5 0或者0 0.5;输出就是0x3C000000和0x00003C00#! /usr/
2017-09-20 15:57:02 3272
原创 C++中文件读写的操作
在C++中读读写文件一般指的就是磁盘中的文本文件和二进制文件:文本文件:以字符序列组成的文件二进制文件:由二进制组成的文件读写文件采用ofstream和ifstream文件流,两者可用头文件包含,具体代码如下:#include #include #include using namespace std;int main(){ ofstream out;//输出文件
2017-11-23 11:28:52 2627
原创 Linux下GDB调试简单示例
这里介绍对文件second.c的基本GDB调试操作,只有部分命令,只是一个示例,运行环境为装有gcc编译器和gdb调试器的Linux环境,基本GDB调试命令如下表:命令 描述backtrace(或bt) 查看各级函数调用及参数finish 连续运行到当前函数返回为止,然后停下来等待命令frame(或f) 帧编号 选择
2017-11-07 19:47:10 649
原创 python中求两个List的交集、并集和差集
直接上代码,有三种方法,第三种调用库函数效率最高# ! /usr/bin/env python# encoding:utf-8if __name__ == '__main__': a = [1,2,3,4,5] b = [2,3,6,7] u =[] dif =[] intersec = [] '''方法一,最简单的方法,容易想到的''' for item in a:
2017-11-02 17:28:55 1615
原创 从字符串中提取出数字
在平时的工作中,解析Log日志时,很多Log日志的名字是用数字编号和字母字符组成,有时候只需要数字编号即可,这可以通过正则表达式来提取,这里介绍两种很简单的提取方法,但很实用,还有其他方法,欢迎大家留言补充。# ! /usr/bin/env python# encoding:utf-8import redef ExtractNumber(testcase): resultData1
2017-10-31 15:52:00 2333
原创 python实现根据指定字符截取对应的行的内容
工作中遇到的,在一个.c文件中有很多函数,这个.c是自动生成的,需要将所有的函数通过extern放到.h中,每个函数都是UINT32 O_开头,通过正则表达式进行字符匹配以及通过linecache来截取特定行,代码如下:#! /usr/bin/env python# encoding:utf-8# ! /usr/bin/env python# encoding:utf-8import
2017-10-11 18:51:13 12077
原创 八皇后问题
八皇后问题描述大家都比较熟悉,就是在8*8的方格中放置8个皇后,使得8个皇后不在同一行、同一列以及不在对角线上,这样8个皇后才不会互相攻击,求放置的方法有多少种?答案就是92种。解题思路:假设用C[j]表示皇后在j行代表的列号,也即皇后的位置第j行第C[j]列采用行列表示为[j,C[j]],j和C[j]的值都是07,放置方法就是从第0行开始放置,然后放置第1行,第2行,……依次类推,放完了
2017-10-10 19:52:29 304
原创 15. 3Sum
原题目:15. 3Sum读题:任意三个数相加为0,但是不能是相同的三元组解题思路:先排序,然后遍历序列,如果遇到相同的数则跳过,指定一个num[i]后,剩下的就是要找到另外两个数A+B=-num[i],可以采用二分查找,begin = i+1;end = len -1;依次查找可以得到,以下是AC代码class Solution {public: vector>
2017-10-10 15:22:26 178
原创 8. String to Integer (atoi)
原文题目:8. String to Integer (atoi)读题:这个题目主要是判断输入,以及有符号数溢出情况,以下输入是合理的1) 输入" 12" 输出122)输入" -23a34" 输出-233)输入 "+010" 输出10以下是AC代码:#define MAXNUM 2147483647#define MINNUM -214748
2017-10-10 11:28:27 266
原创 C语言中插入汇编nop指令
工作过程中,有的时候需要打桩cycle,想在C语言中插入nop指令,可以采取的方法是头文件中加入#inlude 定义一个内联函数,然后调用这个函数,不过得测一下平台调用内联函数的开销,而不仅仅是nop指令的个数,在自己的测试中,调用大概是9个cycle,而nop指令是1个cycle,所以我假设为9倍的线性关系进行打桩,每个平台会不一样,包括用到的器件的主频等等,这里只是提供一种参考方法
2017-09-30 12:50:29 8457
原创 217/219. Contains Duplicate /Contains Duplicate II
原文题目:217. Contains Duplicate219. Contains Duplicate II读题:217只要找出是否有重复值,219找出重复值,且要判断两者索引之差是否小于k//217. Contains Duplicate 46msclass Solution {public: bool containsDuplicate(vector&
2017-09-18 19:18:34 369
原创 204. Count Primes
原文题目:204. Count Primes读题:题目很简单,就是求小于n的质数的个数,注意是小于n,不等于n,也就是说n=2的时候,返回0,n=3时才是返回1一下列出两种方法,一种方法超时,另一种方法逐步优化到46ms//超时class Solution {public: int countPrimes(int n) { int count = 0;
2017-09-18 10:20:57 433
原创 203. Remove Linked List Elements
原文题目:203. Remove Linked List Elements读题:删除链表中节点的值与目标值相等的节点,这和单链表删除某个节点不一样的地方在于,可能需要删除多个节点。解法一是自己写的,利用两个指针p和q,如果p,q相等个,则将p = q->next解法二是AC代码里比较好的//方法一 42msclass Solution {public:
2017-09-15 14:45:18 203
原创 202. Happy Number
原文题目:202. Happy Number读题:题目很简单,将整数的每位取平方相加看是否等于1,如果死循环那么就返回False//方法一class Solution {public: int getResult(int n) { int temp = n; int result = 0; while(temp) { result += (tem
2017-09-15 09:17:16 186
原创 189. Rotate Array
原文题目:189. Rotate Array读题:向右旋转数组,假设数组长度为Len,则旋转Len次后数组恢复到原始状态解题思路:方法一:将原始数组翻转,然后将前k个数翻转,然后将剩余的数翻转,得到最终的nums;方法二:就是将索引为Len-k开始的数组元素赋值到nums的前k的元素,然后将索引0-Len-k-1的元素赋值给剩下的nums元素//方法一class
2017-09-14 20:20:22 214
原创 172. Factorial Trailing Zeroes
原文题目:172. Factorial Trailing Zeroes读题:求n!的末尾有多少个0。说实话,第一次看到这个题,有点懵,由于需要在O(logn)的复杂度内,当然不能去把n!计算出来,然后仔细想想,末尾0是哪里来的?只有当2*5时才会产生一个0,而在1-n中,2的个数明显要多于5的个数,因为2,4,6,8都含有2,所以只要找到5的个数就行了,但是同样的,比如25是包含5
2017-09-14 18:59:37 285
原创 169. Majority Element
原文题目:169. Majority Element读题:这个是一道经典算法题,可以用摩尔投票算法(Moore voting algorithm),前提是一定有一个元素的个数超过总元素个数的一半。比如对于序列[1,1,1,1,1,1,2,2,3,3,4],此时设置一个count,由于前6个都相等为1,count的值累加依次是1,2,3,4,5,6,从第七个数开始就不等于1了,此
2017-09-14 16:11:27 197
原创 168. Excel Sheet Column Title
原文题目:168. Excel Sheet Column Title读题:将整数转为EXCEL表格列标,实际上就是十进制转26进制class Solution {public: string convertToTitle(int n) { string result =""; char apha[27]="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
2017-09-13 16:44:00 348
原创 167. Two Sum II - Input array is sorted
原文题目:167. Two Sum II - Input array is sorted读题:给定一个升序序列,找到两个数加起来等于目标值,并输出索引,注意这里的索引是从1开始的解题思路:由于是升序,因此,可以用p指向第一个元素,用q指向最后一个元素,然后判断p和q所指的数加起来是否为目标值,找到则返回,若小于目标值,则p++,若大于目标值,则q++class Solu
2017-09-13 16:04:24 238
原创 160. Intersection of Two Linked Lists
原文题目:160. Intersection of Two Linked Lists读题:给定两个无环链表,判断是否有交叉点,返回第一个交叉点解题思路:求出两个链表长度lenA和lenB,得到两者的差值,deltaLen = lenA - lenB,这里假设A长度大于B长度,让p指向A头结点,q指向B头结点,此时,让p先往前走deltaLen个节点,这个时候p和q开始后面的
2017-09-13 14:49:40 235
原创 125. Valid Palindrome
原文题目:125. Valid Palindrome读题:该题目就是给定一组字符串,然后只检查字符串中的字母和数字,并且忽略字母的大小写,然后判断是否为回文思路:解法一:循环遍历字符串,将非字母非数字的字符用''直接替换掉得到纯字母数字字符串,然后忽略大小写lower()或者upper()判断是否为回文该解法时间复杂度不符合leetcode的要求,运行时间超时解法二:给
2017-09-12 11:32:21 187
原创 118/119. Pascal's Triangle/II
原文题目:118. Pascal's Triangle119. Pascal's Triangle II读题:杨辉三角问题'''118'''class Solution(object): def generate(self, numRows): """ :type numRows: int :rtype: Lis
2017-09-12 09:45:05 171
原创 python Excel的操作
算是学习记录,平常用到的Excel表格的操作import xlrdimport matplotlib.pyplot as plttarget = xlrd.open_workbook('first.xls','r')sh = target.sheet_by_index(0) #取第一张表 col0Values = sh.col_values(0) # 取第一列col1Values
2017-09-11 20:03:14 295
原创 python中itertools里的product和permutation
平时经常碰到全排列或者在n个数组中每个数组选一个值组成的所有序列等等问题,可以用permutation和product解决,很方便,所以在此mark一下吧直接上代码from itertools import *if __name__ == '__main__': for j in permutations([2,5,6]): print(j) '''
2017-09-11 20:00:06 2257
原创 112. Path Sum
原文题目:112. Path Sum读题:二叉树中是否存在给定和为给定数的路径,递归实现最简单# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None#
2017-09-11 15:57:58 344
原创 111. Minimum Depth of Binary Tree
原文题目:111. Minimum Depth of Binary Tree读题:求最小深度,这和求树的最大深度差不多,只不过需要注意当左子树或者右子树为空时,最小深度并不为0,而是取决于非空子树的最小深度# Definition for a binary tree node.# class TreeNode(object):# def __init__(self,
2017-09-11 11:33:28 210
原创 110. Balanced Binary Tree
原文链接:110. Balanced Binary Tree读题:判断是否为平衡二叉树,平衡二叉树的定义是每个节点的左右子树的高度差不超过1,显然需要通过求高度,也就是树的深度差来判断。# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):#
2017-09-11 11:21:48 184
原创 108. Convert Sorted Array to Binary Search Tree
原文题目:https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/description/读题:首先是个有序序列,从小到大排列,要转成一个高度平衡的二叉搜索树,那么有序序列的中间那个数就是根节点,该数左边的序列为左孩子,右边的为右孩子,用递归实现很简单:# Definition for a
2017-09-11 10:54:31 140
原创 102/107. Binary Tree Level Order Traversal/II
原文题目:102. Binary Tree Level Order Traversal107. Binary Tree Level Order Traversal II读题:102. 层序遍历二叉树,每一层作为一个数组,从上到下输出107.层序遍历二叉树,每一层作为一个数组,反过来从下到上输出两者只有最后一行的存储方式不一致class Solution(obje
2017-09-11 10:32:49 270
原创 101. Symmetric Tree
本题判断一个二叉树是否为对称树题目链接:https://leetcode.com/problems/symmetric-tree/description/# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x#
2017-09-08 14:51:59 203
原创 100. Same Tree
原文题目:Given two binary trees, write a function to check if they are equal or not.Two binary trees are considered equal if they are structurally identical and the nodes have the same value.读
2017-09-08 11:04:07 167
原创 70. Climbing Stairs
原文题目:You are climbing a stair case. It takes n steps to reach to the top.Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?Note: Given n wil
2017-09-08 10:04:45 151
原创 69. Sqrt(x)
原文题目:Implement int sqrt(int x).Compute and return the square root of x.读题:题目就是求x的开根号,很重要的一点是返回值是整数,而不是浮点数,因此这个开根号其实只是接近实际开根号的值的整数而已,并不是精确的开根号,因此可以采用二分法进行处理。class Solution(object):
2017-09-08 09:57:34 248
原创 88. Merge Sorted Array
原文题目:Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.Note:You may assume that nums1 has enough space (size that is greater or equal to m + n) to
2017-09-08 09:50:12 230
原创 半精度浮点数取5bit指数位
半精度浮点是指用16bit表示一个浮点数,最高1bit为符号位,中间5bit为指数a,低10bit为尾数bValue = (符号位)(1+b/1024)*(2^(a-16))程序很简单,用pyinstaller -F getExp.py压缩成getExp.exe(见另一篇博客py文件打包成exe)可以用#coding = utf-8if __name__ == '_
2017-09-07 14:57:42 2152
转载 DFS和BFS
#include #include #include #include using namespace std;#define MAX 100typedef struct{ int edges[MAX][MAX]; int n; int e;}MGraph;bool visited[MAX] = False;void CreateMGraph(MGraph &G)
2017-08-29 20:07:43 221
原创 寻找最长公共子串
def find_lcp(s,t): lens = len(s) lent = len(t) if not lens or not lent: return 0 longest = 0 for i in range(lens): for j in range(lent): length = 0 m = i n = j while m < lens and
2017-08-29 19:46:25 305
原创 寻找最大连续子串和以及寻找最长数字串
'''寻找最大连续子串和'''def find_max_sub_sum(data): if not data: return None sub = data[0] submax = data[0] for i in range(1, len(data)): sub = max(sub+data[i], data[i]) submax = max(submax, sub) r
2017-08-26 17:05:26 841
转载 windows下多线程简单demo
#include #include #include using namespace std;int tickets = 100;HANDLE hMutex;DWORD WINAPI Fun1Proc(LPVOID lpParameter){ while (true) { WaitForSingleObject(hMutex, INFINITE); //请求互斥量访问权
2017-08-26 11:12:28 327
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人