数据结构与算法分析
系统学习数据结构与算法分析(C语言描述),实践出真知,认真扎实基础
夏菠
Android Framework | Image Processing | 逆向
展开
-
[Leetcode]-Contains Duplicate HashTbale重解
Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should return false if every element is原创 2015-07-07 21:54:23 · 919 阅读 · 0 评论 -
哈希表(散列)HashTable实现
最近刷Leetcode发现凡是找字符串中重复字符或者数组中找重复数据的时候就不知道从何下手了。 所以决定学习一下哈希表解题,哈希表的原理主要是解决分类问题,hash表是介于链表和二叉树之间的一种中间结构。链表使用十分方便,但是数据查找十分麻烦;二叉树中的数据严格有序,但是这是以多一个指针作为代价的结果。hash表既满足了数据的查找方便,同时不占用太多的内容空间,使用也十分方便。 定义ha原创 2015-07-07 21:03:55 · 1071 阅读 · 0 评论 -
[Leetcode]-Add Binary
Given two binary strings, return their sum (also a binary string).For example, a = “11” b = “1” Return “100”.Hide Tags : Math, String 题目:输入两个字符串,字符串中只有0和1,0和1表示二进制的0,1,把他当作二进制来作加法。 思路: 1、二进制全加器表达原创 2015-07-06 11:04:28 · 554 阅读 · 1 评论 -
[Leetcode]-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?Hide Tags: Dynamic Programming 题目:爬楼原创 2015-07-06 10:57:06 · 610 阅读 · 0 评论 -
[Leetcode]-Remove Duplicates from Sorted List
Given a sorted linked list, delete all duplicates such that each element appear only once.For example, Given 1->1->2, return 1->2. Given 1->1->2->3->3, return 1->2->3.题目:输入一个排序好的链表,其中可能有元素是重复的,找出重复数据原创 2015-07-06 10:53:34 · 820 阅读 · 0 评论 -
[Leetcode]-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 hold additional原创 2015-07-06 10:45:14 · 667 阅读 · 0 评论 -
[Leetcode]-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.Hide Tags :Tree ,De原创 2015-07-06 10:21:36 · 787 阅读 · 0 评论 -
[Leetcode]-Balanced Binary Tree
Given a binary tree, determine if it is height-balanced.For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by原创 2015-07-06 10:14:04 · 658 阅读 · 0 评论 -
[leetcode]-Maximum Depth of Binary Tree
Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.Hide Tags: Tree ,Depth-first Search/** * D原创 2015-07-06 10:06:33 · 884 阅读 · 0 评论 -
[Leetcode]-Minimum Depth of Binary Tree
Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.Hide Tags :Tree , Depth-first Search 题目:求取原创 2015-07-04 14:58:37 · 735 阅读 · 0 评论 -
[Leetcode]-Path Sum
Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.For example: Given the below binary tree and sum = 2原创 2015-07-04 14:44:32 · 761 阅读 · 0 评论 -
[Leetcode]-Remove Duplicates from Sorted Array
Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.Do not allocate extra space for another array, you must do this in place with cons原创 2015-07-04 14:19:09 · 662 阅读 · 0 评论 -
[Leetcode]-Pascal's Triangle II
Given an index k, return the kth row of the Pascal’s triangle.For example, given k = 3, Return [1,3,3,1].Note: Could you optimize your algorithm to use only O(k) extra space?Hide Tags : Array 题目:返回帕原创 2015-07-04 14:08:08 · 671 阅读 · 0 评论 -
[Leetcode]-Pascal's Triangle
Given numRows, generate the first numRows of Pascal’s triangle.For example, given numRows = 5, Return[ ——-[1], ——[1,1], —-[1,2,1], —[1,3,3,1], –[1,4,6,4,1] ]题目:根据numRows生成帕斯卡三角形。帕原创 2015-07-03 19:46:09 · 1090 阅读 · 0 评论 -
[Leetcode]-Valid Palindrome
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.For example, “A man, a plan, a canal: Panama” is a palindrome. “race a car” is not a palin原创 2015-07-02 21:06:25 · 715 阅读 · 0 评论 -
[Leetcode]-Merge Two Sorted Lists
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists. 题目:合并两个排序后的单链表,要求合并之后也是排序好的 思路:递归合并 /** * Definition fo原创 2015-07-02 14:20:24 · 609 阅读 · 0 评论 -
[Leetcode]-Min Stack
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.push(x) – Push element x onto stack. pop() – Removes the element on top of the stack. top() – Get the原创 2015-07-01 21:30:41 · 622 阅读 · 0 评论 -
[Leetcode]-Palindrome Number
Determine whether an integer is a palindrome. Do this without extra space. 题目:判断int数据是否为回文数 注意:负数不是回文数,0是最小的回文数 思路:此题和前面一道 求int数的反序差不多http://blog.csdn.net/xiabodan/article/details/46674133原创 2015-07-01 16:32:46 · 696 阅读 · 0 评论 -
[Leetcode]-Intersection of Two Linked Lists
Write a program to find the node at which the intersection of two singly linked lists begins.For example, the following two linked lists:A: ——-a1 → a2 ———————-↘ ————————原创 2015-07-01 15:07:18 · 657 阅读 · 1 评论 -
[Leetcode]-String to Integer (atoi)
mplement atoi to convert a string to an integer.Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.No原创 2015-07-01 14:02:28 · 646 阅读 · 0 评论 -
[Leetcode]-Excel Sheet Column Title
Given a positive integer, return its corresponding column title as appear in an Excel sheet. 题目:将数字转换为以‘A’—‘Z’字母为进制的字符串 结题思路:就按照10进制变换为26进制的方法就OK For example:1 -> A2 -> B3 -> C...26 -> Z27 -> A原创 2015-07-01 13:56:55 · 644 阅读 · 0 评论 -
[Leetcode]-Majority Element
题目:Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times. 找出数组中出现超过⌊ n/2 ⌋次的数据 三种解法: 1、参考别人的,很巧的解法 2、插入排序,排序后,nums⌊ n/2 ⌋必定是出原创 2015-06-28 21:17:29 · 650 阅读 · 0 评论 -
[Leetcode]-Reverse Integer
//如果有pow函数,Linux下编译一定要加-lm //gcc ReverseInteger.c -o ReverseInteger -lm 关键:一定要注意操作过程中int类型超界 有可能输入数据没有超界,但是反向逆序后,甚至在逆序操作过程中都有可能超界!反正时刻检查超界与否#include <stdlib.h>#include <stdio.h>#include原创 2015-06-28 21:09:23 · 968 阅读 · 0 评论 -
[Leetcode]-Rotate Array
Rotate an array of n elements to the right by k steps.For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4]. 将固定数组循环右移k步 注意:当k>numsSize的时候k = k % numsSizevoid rot原创 2015-06-26 13:58:30 · 591 阅读 · 0 评论 -
[Leetcode]-Reverse Bits
Reverse bits of a given 32 bits unsigned integer. 将uint数据按照二进制位倒序 For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binar原创 2015-06-26 13:21:24 · 622 阅读 · 0 评论 -
[Leetcode]-Number of 1 Bits
Number of 1 Bits Write a function that takes an unsigned integer and returns the number of ’1’ bits it has (also known as the Hamming weight).For example, the 32-bit integer ’11’ has binary represent原创 2015-06-26 12:26:23 · 698 阅读 · 0 评论 -
[Leetcode]-Rectangle Area
//题目:Find the total area covered by two rectilinear rectangles in a 2D plane. //Each rectangle is defined by its bottom left corner and top right corner as shown in the figure. //求两个正方形的面积(重叠地方只算一次原创 2015-06-26 11:15:27 · 685 阅读 · 0 评论 -
[Leetcode]-ReverseLinkedList
题目:单链表取反#include <stdlib.h>#include <stdio.h>typedef struct node *list;typedef struct node *position;typedef struct node *ListNode;typedef struct node{ int data; position next;}node;static原创 2015-06-25 21:07:04 · 654 阅读 · 0 评论 -
[Leetcode]-containsNearbyDuplicate
//题目://给定一个整数数组与一个整数k,当且存在两个不同的下标i和j满足nums[i] = nums[j]并且| i - j | <= k时返回true,否则返回false。#include <stdlib.h>#include <stdio.h>#include <stdbool.h>//注意: 当K >= numsSize的时候//愤怒的解法1300ms 哭晕在厕所bool原创 2015-06-25 14:28:50 · 1104 阅读 · 0 评论 -
[Leetcode]-Length of Last Word
// 题目: 求取字符串中最后一个单词的长度// 注意: s="A " 返回应该是1// s=" " 返回应该是0// s="a " 返回应该是1#include <stdlib.h>#include <stdio.h>#include <string.h>int lengthOfLastWord(char* s) { int length = 0;原创 2015-06-25 12:49:55 · 610 阅读 · 0 评论 -
[Leetcode]-Longest Common Prefix
// 1、判断strs的长度,如果为0则返回空字符 // 2、找出strs中最短的字串 // 3、采用循环查询的方式依次匹配是否和最短字串相符 // 4、循环中实时更新查询的长度index#include <stdlib.h>#include <stdio.h>#include <string.h>char* longestCommonPrefix(char** strs, int str原创 2015-06-25 12:47:28 · 570 阅读 · 0 评论 -
[Leetcode]-Roman to Integer
#include <stdlib.h>#include <stdio.h>#include <string.h>int romanToInt(char* s) { int N=strlen(s); int map[26]={0}; map['I'-'A']=1; map['V'-'A']=5; map['X'-'A']=10; map['L'-'A原创 2015-06-25 12:45:24 · 681 阅读 · 0 评论 -
数据结构与算法分析-贪念算法
作者:xiabodan 出处:原创 2015-06-07 14:23:06 · 667 阅读 · 0 评论 -
github上传与下载
1、创建SSH key第一次使用github,首先在本地创建ssh keyssh-keygen -t rsa -C "your_email@youremail.com" 后面的your_email@youremail.com改为你的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key。回到githu原创 2015-06-16 17:25:49 · 1286 阅读 · 0 评论 -
数据结构与算法分析-索引
作者:xiabodan 出处:http://blog.csdn.net/xiabodan 算法和数据结构是计算机科学的核心内容。作为程序员,编程是我们的实战项目。然而,写出程序还不够。一个程序在应对一些大型而复杂的情况时,会耗费大量的时间。我们可以很容易写出一个从文件中找到一个词的程序,比如逐词扫描,看是否相符。但如果我们的文件有几十TB,而且要从文件中找到上百个词,逐个扫描的办法原创 2015-06-07 09:36:57 · 1228 阅读 · 0 评论 -
数据结构与算法分析-数学知识复习
作者:xiabodan 出处:http://blog.csdn.net/xiabodan 实验平台:raspberry 2 B + Ubuntu Mate 数学知识基础原创 2015-06-04 15:25:30 · 1179 阅读 · 0 评论 -
数据结构与算法分析-优先队列 堆(heap)
作者:xiabodan 出处:http://blog.csdn.net/xiabodan原创 2015-06-05 15:13:05 · 1271 阅读 · 0 评论 -
数据结构与算法分析-散列(hashing)
作者:xiabodan 出处:http://blog.csdn.net/xiabodan原创 2015-06-05 15:13:25 · 1133 阅读 · 0 评论 -
数据结构与算法分析-树、二叉树、二叉查找树
作者:xiabodan 出处:http://blog.csdn.net/xiabodan 二叉树二叉树的申明:struct node { int data; struct node *left; struct node *right;};新建一个节点/* newNode() allocates a new node with the given data and NULL l原创 2015-06-06 15:19:45 · 1462 阅读 · 0 评论 -
数据结构与算法分析-排序
作者:xiabodan 出处:http://blog.csdn.net/xiabodan 排序算法(Sorting Algorithm)是计算机算法的一个组成部分。也是程序=算法+数据结构中的一部分(算法)。实验平台:raspberry 2 B + Ubuntu Mate 插入排序//插入排序//stable//O(N^2) comparisons and swaps原创 2015-06-04 14:39:20 · 2285 阅读 · 1 评论