自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 K个一组反转链表

链表如下: head -> 1, tail -> 81 -> 2 -> 3 -> 4 ->5 -> 6 -> 7 -> 8-> nullptrK = 3=> 1 -> 2 -> 5 -> 4 -> 3 -> 8 -> 7 -> 6 -> nullptr(最后一部分小于K, 则不用再反转)K = 4=>4 -> 3 -> 2 -> 1 -> 8 -

2020-08-02 15:37:26 533

原创 leetcode 628: maximum3 product

原题 leetcode 628第一个思路如下, 求n个数中任选3个(k个)数的最大积;需要考虑负数的情况, 可以先选出2个最大正数和最小负数(可以和求第3大数类似的思路), 然后求这2个正数, 复数的积的大者, 然后再从剩下的序列中找出最大的正整数, 相乘得到最大的3个数的积.但这个思路是特定针对k=3的; 在有负数的情况下,不适用于k为任意数字的通用思路;隔了一天, 想到了第二个思路:最大的k个数积: n个数中选任意3个, 求出积最大的那个, 实际上就等效于n个元素的集合选出k=3的子集, 然后

2020-07-28 23:20:41 154

原创 求子集问题

原题: leetcode这道题提供若干种解法。之所以如此, 原因是和软院同学王佳晚上的一次会话。因为一开始我写不出基于回溯思想的非递归的实现,想找王佳请教一下。聊完之后, 经受点拨, 感觉确实收益颇深!写来记录一下。解题最重要的, 是理解什么才"正向的"解题思路。 找到一个可以表示问题空间的模型,或者理解题目本身具有的性质,或者是能把问题抽象成数学或状态方程。 借助这样的理解,可能会把问题A转化成问题B. 再借助问题B有关的知识,方法去解题。以给求定集合A的所有子集问题为例,可以有好几种理解该问题的模

2020-07-23 18:51:56 974

原创 N皇后问题详解

原题: leetcode 51隐式图, 状态/关系, DFS与回溯法图的DFS的搜索过程形成搜索树, 在七月君的视频及pdf里有针对图的DFS/BFS的详细过程的讲解. 注意这个讲解是针对图(邻接表实现)的结构进行的; DFS/BFS的时间复杂度都是O(n + m); (n - 节点数量, m - 边数量); 但现实解题中图的结点和边并不是一开始就明确给出的, 需要把现实问题转换成一个"隐式图"。隐式图, 需要根据问题去划分"状态"与"关系"。状态是指从初始到目标, 问题经历的中间过程; 状态一般是隐

2020-07-21 11:31:42 4077

原创 拓扑习题 leetcode 207 cource schedule

原题: course schedule#include <iostream>#include <vector>using namespace std;class Solution { public: struct ArchNode { int idx; struct ArchNode* next; ArchNode(int i): idx(i), next(nullptr) {} }; str.

2020-07-13 16:50:17 69

原创 邻接表和邻接矩阵实现拓扑排序

先贴代码, 先贴简要的解释,周末更新.邻接表的实现#ifndef __ADJ_GRAPH__#define __ADJ_GRAPH__#include <iostream>#include <vector>struct ArchNode { int adj_vertex; ArchNode* next;};struct VertexNode { int vertex_id; ArchNode* first; ArchNode* tail;

2020-07-03 18:43:56 1508

原创 C++ Concurrency in Actions -注解1 -附录A

C++ Concurrency in Actions Annotations - 1今年春节放假的整整二月份, 正好在家哪儿都去不了。我逼自己用流水帐的方式读完了C++ Concurrency in Action这本书。由于是粗读,现在需要做一些笔记用以消化这些知识。不是翻译网上出现过这本书的中文翻译版, 我看了一个开头, 就没看了。然后浏览了知乎上的一些评价,基本以吐槽为主。这些吐槽也符合我对这本书的直译版的印象。英文版技术书很难按章节语句本身去直译。并不是因为某些老外所说的中文准确性的问题。个人认

2020-05-18 18:36:43 286

原创 BST树和AVL树实现

二叉搜索树(BST)#ifndef BST_H_INCLUDED#define BST_H_INCLUDEDclass BST { struct node* root_ = nullptr; public: BST(int* arr, int sz) { for (int i = 0; i < sz; ++i) { inse...

2020-04-16 12:10:20 181

原创 前中后序遍历二叉树的非递归实现

周游二叉树的非递归实现, 对于中序周游, 前序周游都较容易实现. 而后序周游需要动一些脑筋。我们需要在周游必要的情况节点, 交换栈顶元素有一个必要的要求, 即不要让二叉树节点携带不必要的辅助信息; 不污染struct node , 由此可见之前刷的几个小算法的二叉树周游非递归版本的实现应该修正;#ifndef TRAVERSE_H_INCLUDED#define TRAVERSE_H_INC...

2020-04-08 19:37:51 203

原创 堆应用: 合并k个排序链表

合并k个排序链表: 合并给定k个排序链表;e.g.2->4->nullptr-4->4->5->nullptr-1->nullptr合并这3个有序的链表, 返回: -4->-1->2->4->4->5->nullptr解法思路:主要思路是建堆MinHeap。从k个链表表头取元素, 建堆, 然后heap.peek...

2020-03-29 23:29:21 134

原创 堆(1): 基本实现

// min-heap 10 / \ 20 100 / 30 堆定义和基本性质数组实现的二叉树; 因此它不是使用parent pointer/child pointer;它是根据"堆属性"来排序的,决定在数组中各个元素的位置;堆属性: max-heap, min-heap;堆是一颗"完全二叉树"(a complete binary tree)...

2020-03-28 21:49:44 145 1

原创 锯齿形按层访问二叉树

先贴代码, 后写解释#include <iostream>#include <vector>struct Node { int value; struct Node* left; struct Node* right;};void z_visit_binary_tree(const Node* root) { std::vect...

2020-03-22 22:33:48 107

原创 给定后序遍历和中序遍历顺序构造二叉树

postorder的最后一位是root;从头开始遍历inorder输出, 直到找到root, 计数个数为左子树个数j;确定第一层左子树右子树的索引位置:postorder: 左子树0 - j-1, 右子树 j+1 - length-2inorder: 左子树0- j-1, 右子树 j + 1 - length -1分别递归下一层/** 4 / \ 3 ...

2020-03-22 16:17:42 295

原创 给定前序遍历和中序遍历顺序构造二叉树

先贴代码,后写解释递归:#include <iostream>#include <vector>struct node { int value; struct node* left; struct node* right; node(int val): value(val), left(nullptr), righ...

2020-03-21 17:34:29 584 1

原创 给定二叉树查找2个节点的最深公共祖先(LCA)

先贴代码,后写解释.递归版本// $3// 给定一个二叉树, 找出2个节点的最近的公共父节点;/** 4 / \ 3 7 / \ 5 6*///Javascriptconst tree = { val: 4, left: { val: 3, left: null, right: null }, rig...

2020-03-19 23:20:50 467

原创 最长连续序列 & 初探并查集

最长连续序列, leetCode 128, 难度: hard首先想到的是基于数组的桶排序的方案(找出数组的最大的连续非空的元素个数), 并写了一个版本。但实际上桶排序是行不通的; 一方面桶排序申请的内存规模与样例数组的规模有关, 占用大量内存, 另一方面, 样例数组的数据有正有负, 而数组无法用负数索引,导致实际不可行。尽管有的样例是都是整数,可以在某些环境执行通过,leedCode有san...

2020-03-14 22:57:24 243

原创 设计一个可以求最大/最小元素的队列/栈

设计一个可以求最大/最小元素的队列/栈设计队列/栈, 支持出入,求最大元素; 要求全部操作O(1)leetcode 155MinStack, leetCode 155// 这个解在提交leetcode时,// 由于测试数据样本很多很大,会出现heap-buffer-overflow, 是int值溢出了;#define MAX_INT 2147483646class MinSt...

2020-03-08 20:49:34 141

原创 decodeString

leetCode 394: decodeString第一个版本写的非常挫折,代码也十分混乱。比较大的收获是学会了gdb调试常规情况. 总结一些心得:先不要着急开始写;有些情况是递归方便, 有些情况是非递归方便(例如按层遍历树, 包括此题). 前提是, 如果需要递归把递归的操作拆解清楚(返回类型, 入参等); 对于递归情况和复杂的,尝试拆解手工栈的操作;对于这种明显利用栈或某种数据结构的,...

2020-01-09 12:34:00 322

原创 最大子数组积-2

动态规划的解法:动态规划,是递归(或遍历) + 缓存的技术; 此题一遍遍历就已经可以得到累积的结果了比较直观; 解释在第一个js版本的注释中/**具体例子:idx: 0, 1, 2, 3, 4 .... n-1nums: 2, 3, -1, -3, 2 ....dpMax: 2, 6, -1=max(-6, -1), 18=max(-3*-1, -...

2020-01-05 23:13:02 126

原创 工作Android项目编译札记

最近一头扎进安卓的坑。Android小白sync project with gradle总是坎坷无比是不是?总算弄好一次, 过了一阵又挂了有木有?此篇主要总结在这次成功编译之后,各种惨痛的踩坑历程。(项目名称已在文中隐去)下载资源踩坑gradle-x.x-all.zip文件Android studio在sync项目时会先下载gradle-x.x-all.zip文件, 具体那个版本,是由项目...

2019-11-30 21:59:36 588

原创 最大子数组积C++实现

最大子数组积原题描述原题描述参考: leetcode’s 152 Maximum Product SubarrayGiven an integer array nums, find the contiguous subarray within an array (containing at least one number) which has the largest product.E...

2019-07-19 17:49:31 395

原创 快速排序递归与非递归C++实现

快速排序基本思路对一个给定的数组, 选择一个元素, 对数组进行整理,使得位于该元素的左边的元素都比选定元素小, 右边的部分都比选定元素大或相等; 这个整理过程叫做partition; 把partition过程递归的应用到选定元素的左侧和右侧的子数组,直到子数组少于2个元素,递归结束; 整个数组变为有序的;所以问题转变成partition的实现, 给定一个数组,选一个数组中的元素, 如何整理使得...

2019-07-04 17:15:05 1096

原创 heuristic manner

due to there is no strict type checking, all the algorithms related to type checking  are almost  all heuristic progress, “if there is a property of what, that could be xxx, or level down to other o

2013-12-24 17:32:57 594

原创 jquery quirks

1.FileReader对象只支持DOM level 1 的某些事件。例如如下onprogress 事件,.bind(), .on()的handler的被传入事件均没有某些属性的值;(jquery-1.9.1.js)var reader = new FileReader;function ccc (evt){console.log((evt.lengthComputable, evt.lo

2013-07-26 16:27:19 544

原创 Closure, Memory Leak and Memory Diagnose

what is Closure从概念上讲, Closure是一种语言机制,它的出现是为了满足函数式编程(functional programming lauguage)的某种设计需求, 即,为在函数式语言中作为first-class的函数对象提供与之绑定的数据环境注维基百科上说Closure是"a function or reference to a function together w

2013-06-20 04:57:48 1588 1

原创 Build the seajs project 2: editing the Gruntfile

purposemy aim is these:i.when deploying a project, the js file's dependency can be dynamically and automatically managed, if this is not archived perfectly,at least there 's some shortcut to go;

2013-06-04 23:41:12 700

原创 Build the seajs project1: preparation

this article introduces how to concatenate, compress your seajs projects in product environment.Install the nodejs/npmsee ref:https://github.com/joyent/node/wiki/Installationhttp://joyeur.com/

2013-06-04 22:48:13 655

原创 Sample of turning recursive function into non-recursive

This is sample of turning one recursive function into its non-recursive form, note this is a matter of traversal of binary-tree in post-order. Interestingly you will find in javascript, the recursiv

2013-05-27 00:04:17 575

原创 Find Nth Biggest Number Based On QuickSort

First,  the recursive version of Quick sort algorithm: function partition(arr, low, high){ var pivot = arr[low]; while (low < high){ while (low < high) { if (arr[high] <= pivot ){

2013-05-26 23:33:23 553

原创 EventFront队列机制修改

先贴代码,这一段是小东的版本;现在我做了一些修改;function EventDispatcher(){ var that = this; this.dispatch = function(request) { if (typeof request.action == 'function') return request.action(); var controllerN

2011-11-14 20:58:54 355

原创 Function Template和css utility function

Function Template和css utility function原理继承让对象具有另一个对象的api,自动具有某些方法的行为。那么能否让一函数具有另一个函数的部分行为,并且让它以另一个函数的行为为模板而扩展?其实在java,C++中通过拆分组合多个方法也可以实现这一目的,但js的'元类继承' (我不知道是谁提出的概念,我是从winter的博客上最初看到的)的概念使之实现上面

2011-10-24 15:28:42 955 1

原创 new范式·2个例子

一段代码:var controller = { notify: function(obj){ obj.notify(); }}var base_obj = { notify: function(){ alert('base'); }}funct

2011-08-15 19:43:46 350

原创 有关javascript中的this

javascript中函数中的this的值取决于使用哪个对象调用这个函数;function invocation in js is merely sending message between objects.函数的调用者提供身份,而函数本身的实现提供在这个身份下的行为。

2011-03-02 16:56:00 712

原创 IE8的不给力之一: 支持jquery.css()的怪癖

IE8的不给力之一: 支持jquery.css()方法时常发生怪事.

2011-02-16 17:58:00 3429

原创 酷壳上的一段js代码分析

from Cool Shell I saw" 一段js代码", a confused code snipped, originates from here blackhat .

2011-02-01 17:02:00 513

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除