Davey的专栏

不想再做一枚弱菜~Come On!

快排、堆排序

快排:快速排序主要运用了二分的思想,每次选择一个基准元素,比基准元素打的元素都放在基准元素前面,比基准元素小的元素都放在基准元素后面,这样不断递归细分,完成排序。C++代码实现:void QuickSort(int a[], int l, int r){ int temp = a[l]; ...

2017-08-04 18:10:55

阅读数 197

评论数 0

求二叉树深度、判断是否是平衡二叉树

求二叉树深度:递归的方法:从根节点按照先序顺序遍历二叉树,返回左子树和右子树中较大的深度,再加上1就是根节点的深度。C++代码实现:typedef struct TreeNode{ int data; struct TreeNode* leftchild; struct T...

2017-08-04 13:55:53

阅读数 381

评论数 0

数字在排序数组中出现的次数

题目:统计一个数字在排序数组中出现的次数。例如输入{1,2,3,3,3, 3,4,5}和数字3,那么输出应该是4,因为3出现了4次。思路: 直接暴力求解时间复杂度为O(n) ,下面利用二分查找的思想,给出时间复杂度为O(logn) 的算法: 1. 利用二分查找的思想,找到第一个出现的K,时间复...

2017-08-02 22:32:59

阅读数 167

评论数 0

查找树中两个节点的最低公共祖先

求树中两个节点的最低公共祖先给定一棵树和两个节点,求解这两个节点在树中的最低公共祖先节点。(剑指Offer)思路: 从根节点遍历树,直到要查找的节点,保存从根节点到要查找的节点的路径。遍历两次树,即保存了根节点到要查找的两个节点的两条路径,然后求出两条路径的最后一个交点即可。C++代码实现:#i...

2017-08-02 20:56:37

阅读数 284

评论数 0

LeetCode -- 650. 2 Keys Keyboard

题目:Initially on a notepad only one character ‘A’ is present. You can perform two operations on this notepad for each step:Copy All: You can copy all ...

2017-08-02 11:49:22

阅读数 1526

评论数 0

C语言中atoi()函数实现--字符串转int型整数

C语言中有个atoi()函数,将字符串转成整数,返回int类型的数值。思路很简单,但是有很多边界和细节要处理,本文参考剑指offer上的实例,仅供参考。#include <iostream> #include <string>enum Status{kValid = 0, ...

2017-08-01 20:21:53

阅读数 1047

评论数 0

LeetCode -- 213. House Robber II

题目:After robbing those houses on that street, the thief has found himself a new place for his thievery so that he will not get too much attention. Th...

2017-08-01 17:40:25

阅读数 113

评论数 0

LeetCode -- 198. House Robber

题目:You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stoppin...

2017-08-01 16:28:47

阅读数 122

评论数 0

LeetCode -- Range Sum Query - Immutable

题目:Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.Given nums = [-2, 0, 3, -5, 2, -1]sumRange(0,...

2017-08-01 10:54:16

阅读数 77

评论数 0

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