
algorithm_basics
basic computer alogrithm learning
jasonxty
这个作者很懒,什么都没留下…
展开
-
Leetcode(3)-找最大子串的长度
启示:要多用指针,用空间换时间int lengthoflongestSubstring(char *s) { int len = 0; char *end = s; char *temp; char addressTable[128] = {NULL}; while(*end) { temp = addressTable[*end];原创 2017-06-03 22:51:25 · 583 阅读 · 0 评论 -
Reverse Integer
我还在想着怎么转换为字符串,然后怎么自己处理溢出问题。 它的解答巧妙的使用了计算机的特性。int reverse(int x) { long long val = 0; int re = 0; do { val = val*10 + x%10; x /= 10; } while(x); re = (val > INT_MAX原创 2017-06-05 20:20:18 · 238 阅读 · 0 评论 -
Leetcode-2(链表)
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) { str原创 2017-05-26 11:23:43 · 337 阅读 · 1 评论 -
Leetcode Median of Two Sorted Arrays
这道题确实属于hard做了半天。。。leetcode果然不计算复杂度,先用merge在求中位数也通过了。。。复杂度O(n)。double findm(int *num, int numSize) { if (numSize == 0) return 0; if (numSize % 2 == 1) { return(num[numSize/2]);原创 2017-08-07 15:24:16 · 207 阅读 · 0 评论 -
SQL的几种连接:内连接、左连接、右连接、全连接、交叉连接
改编自http://www.cnblogs.com/zxlovenet/p/4005256.html 并在mysql自行进行实验。SQL连接可分为内连接、外连接、交叉连接。数据库数据: student表 bookloan表内连接1.1 等值连接:在连接条件中使用等于号运算符比较连接列的列值,其查询结果中列出被连接表中的所有列包括其中的重复列。select *from studen原创 2017-10-07 13:50:17 · 486 阅读 · 0 评论 -
正则表达式
正则表达式是由普通字符和以及特殊字符(称为“元字符”)组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。普通字符普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其它符号。非打印字符字符 描述 \cx 匹配由x指明的控制字符。例如,\cM匹配一个Control-M或回车符。x必须是A...转载 2020-07-09 12:37:08 · 377 阅读 · 0 评论 -
常见排序算法及其C语言实现(二)
堆的基本操作及堆排序void siftup(int *H, int i); //关于堆,所有的位置计算都从1开始。包括n代表个数。void siftdown(int *H, int n, int i); //因此在数组操作的时候都要减一,其它位置均表示个数void makeheap(int *H, int n);void heapsort(int *A, int n);void heapde原创 2017-08-11 11:03:26 · 297 阅读 · 0 评论 -
常见的排序算法C语言实现(—)
void merge(int *A, int q, int mid, int r) { int i, j, k; int lnum = mid - q + 1; int rnum = r - mid; int *L = (int *)malloc(sizeof(int)*(lnum + 1)); int *R = (int *)malloc(sizeof(in原创 2017-08-09 20:43:43 · 348 阅读 · 0 评论 -
稳定排序和不稳定排序
转自http://www.cnblogs.com/codingmylife/archive/2012/10/21/2732980.html 这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试前已经记住了 数据结构书上哪些是稳定哪些是不稳定的,做起来应该可以轻松搞定。本文针对老是记不住这个或者想真转载 2017-08-07 17:27:37 · 434 阅读 · 1 评论 -
一个有趣的并行程序
在阅读《深入理解计算机系统》的时候看到一个非常巧妙的小程序。在这里分享给大家。long fun_c(unsigned long x) { long val = 0; int i; for (i = 0; i < 8; i++) { val += x & 0x0101010101010101; x >>=1; } val +=原创 2016-12-04 20:09:39 · 364 阅读 · 0 评论 -
Amortized analysis平摊分析——记算法导论视频总结
引言:在不知道总共有多少元素的情况下,一个哈希表应该多大?一个方法是动态表dynamic table。当数据溢出的时候double表格。将原来数据移动到新表,并释放旧表。那么如何分析每一次插入操作所需的赋值次数呢?对于这个问题最简单直观的方法是用聚集方法(aggregate analysis),即不直接分析每一次的赋值次数而分析n次插入的赋值次数。 具体分析如下: 观察可知 C=∑原创 2016-06-10 15:16:06 · 1692 阅读 · 0 评论