C/C++
文章平均质量分 88
konsy_dong
Java,C++,Python,linux
展开
-
SequentialSearch 顺序表查找
思路很简单,平均要查找(n+1)/2次,复杂度为O(n)代码实现:#include using namespace std;int SequentialSearch(int *a, const int n, int x){ int i; for (i = 0; i < n; ++i){//循环数组中每一个数,与要查找的数进行对比 if (a[i] == x){ ret原创 2017-03-17 14:59:25 · 762 阅读 · 0 评论 -
C/C++——各种类型int、long、double、char表示范围(最大最小值)
原贴:http://blog.csdn.net/xuexiacm/article/details/8122267#include<iostream> #include<string> #include <limits> using namespace std; int main() { cout << "type: \t\t" << "************size*转载 2017-03-27 17:02:25 · 945 阅读 · 0 评论 -
C++——析构函数为什么要为虚函数
注:本文内容来源于zhice163博文,感谢作者的整理。为什么基类的析构函数是虚函数? 在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生。 下面转自网络:源地址 http://blog.sina.com.cn/s/blog_7c773cc50100y9hz.html a.第一段代码#include<iostream>using namespace std;c转载 2017-03-21 22:13:40 · 1352 阅读 · 0 评论 -
《剑指Offer》 反转链表
题目描述: 输入一个链表,反转链表后,输出链表的所有元素。思路: 设置一个新的newHead,其为NULL,当pHead不为NULL时,设计nextHead=pHead->next,pHead->next指向newHead,将newHead设置为新的链表头pHead,pHead再设置成nextHead从来来将之后所有的数据反转。代码:/*struct ListNode { int va原创 2017-04-07 10:20:51 · 353 阅读 · 0 评论 -
《剑指Offer》 二叉树的镜像
题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10原创 2017-04-07 15:07:08 · 338 阅读 · 0 评论 -
ShellSort 希尔排序
希尔排序算法: 思路: 例如例子中的,首先步长increment为10/3=3,再之后为3/3=1,在每次步长循环时,外循环i=increment开始,直到最后一个数,内循环比较与前面(步长间隔)的数的大小,若小,则保存它,将前面的数移到后面,再将这个数插入。注释在代码中 代码实现://希尔排序(排序后为从小到大)#include <iostream>#include <algorithm原创 2017-03-22 16:09:11 · 300 阅读 · 0 评论 -
LeetCode 35. Search Insert Position
Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.You may assume no duplicates in the array.原创 2017-03-16 12:48:10 · 339 阅读 · 0 评论 -
LeetCode 414. Third Maximum Number
Given a non-empty array of integers, return the third maximum number in this array. If it does not exist, return the maximum number. The time complexity must be in O(n).Example 1:Input: [3, 2,原创 2017-03-16 13:02:18 · 354 阅读 · 0 评论 -
LeetCode 66. Plus One
Given a non-negative integer represented as a non-empty array of digits, plus one to the integer.You may assume the integer do not contain any leading zero, except the number 0 itself.The digi原创 2017-03-16 13:13:40 · 783 阅读 · 0 评论 -
LeetCode 26. 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 p原创 2017-03-16 13:35:37 · 402 阅读 · 0 评论 -
LeetCode 27. Remove Element
题目:Given an array and a value, remove all instances of that value in place and return the new length.Do not allocate extra space for another array, you must do this in place with constant me原创 2017-03-16 13:54:38 · 491 阅读 · 0 评论 -
LeetCode 461. Hamming Distance
题目:The Hamming distance between two integers is the number of positions at which the corresponding bits are different.Given two integers x and y, calculate the Hamming distance.Note:原创 2017-03-16 18:27:01 · 405 阅读 · 0 评论 -
《剑指Offer》替换空格
题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路: 首先改函数形参,改为引用传入 void replaceSpace(char *&str,int length) space记录空格数,new一个length+2*space+1的指针数组,再循环str,如果str[j]不是空格原创 2017-03-24 21:20:00 · 361 阅读 · 0 评论 -
C++ new一个数组时,指针移动程序崩溃问题
问题代码:#include using namespace std;int main(){ int a[] = { 12, 42, 6, 17, 32, 4, 19 }; int *pia = new int[7]; for (size_t i = 0; i < 7; ++i){ pia[i] = a[i]; } for (size_t i = 0; i < 6;++i){原创 2017-03-15 22:54:53 · 1444 阅读 · 0 评论 -
《剑指Offer》用两个栈来实现队列
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路: stack1的栈底作为队列的头,栈顶作为队列的尾,stack2来辅助pop。入队列时: 如果stack2不为空,可能是stack1过去的数据,那就就先要将stack2中的数据全都放到stack1中,然后再push。(想当于是在stack2空时,在stack1末尾push)出队列时: 如果原创 2017-03-25 00:02:07 · 240 阅读 · 0 评论 -
《剑指Offer》斐波那契数列
题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39思路:这个题太简单了,思路不说了1. 递归方法:class Solution {public: int Fibonacci(int n) { if (n == 0 ){ return 0; } else if(n=原创 2017-03-25 11:05:39 · 341 阅读 · 0 评论 -
数据结构——树的存储结构孩子表示法
下面的程序就是下面这张表的实现: 程序实现 参考了《大话数据结构》中的定义:typedef struct CTNode{//孩子结点 int child; struct CTNode *next;} *ChildPtr;typedef struct{//表头结构 char data; ChildPtr firstchild;}CTBox;typedef str原创 2017-03-26 16:12:51 · 2566 阅读 · 0 评论 -
《C和指针》——在一组字符串中查找
程序中value是要查找的字符,strings指向字符串列表程序1:#include <stdio.h>#define TRUE 1#define FALSE 0int find_char(char **strings, char value){//strings指向是一个字符串列表,类似于就是二维的字符数组 char *string; //当前正在查找的字符串 while ((原创 2017-03-30 11:29:09 · 790 阅读 · 0 评论 -
《C和指针》——C语言字符串操作
字符串操作strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串 strncmp(p, p1, n) 比较指定长度字符串原创 2017-03-30 13:24:45 · 830 阅读 · 0 评论 -
《C和指针》——指向数组的指针(逐个移动和逐行的区别)
定义一个数组 int matrix[3][10]; 第一种初始化: int (*p)[10]=matrix; 第二种初始化: int *pi=&matrix[0][0];与 int *pi=matrix[0];等价第一种初始化的p指向matrix的第1行,p是一个指向拥有10个整型元素的数组的指针。当把p与一个整数相加时,该整数值首先根据10个整型值的长度进行调整,然后再执行加法。可以一行原创 2017-04-01 16:39:03 · 1179 阅读 · 0 评论 -
LeetCode 104. 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.思路: 使用递归求解非常容易,一个节点的深度等于它的左子树的深度和它的右子原创 2017-04-04 16:20:01 · 342 阅读 · 0 评论 -
LeetCode 141. Linked List Cycle
题目: Given a linked list, determine if it has a cycle in it.Follow up: Can you solve it without using extra space?思路: 判断一个链表中是否有循环,运用快慢指针,如果有循环,肯定会相遇代码:/** * Definition for singly-linked list. * st原创 2017-04-04 16:20:24 · 246 阅读 · 0 评论 -
LeetCode 191. 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 representation 0000000原创 2017-04-04 16:21:45 · 266 阅读 · 0 评论 -
LeetCode 203. Remove Linked List Elements
题目: Remove all elements from a linked list of integers that have value val.Example Given: 1 –> 2 –> 6 –> 3 –> 4 –> 5 –> 6, val = 6 Return: 1 –> 2 –> 3 –> 4 –> 5思路: 给定一个链表,删除链表中所有的val值 。 具体思路见代码注释。原创 2017-04-04 16:22:42 · 254 阅读 · 0 评论 -
LeetCode 234. Palindrome Linked List
题目: Given a singly linked list, determine if it is a palindrome.思路: 给定一个链表,判断它是不是回文链表 根据链表的奇偶分情况,然后反转后半段链表,与前半段比较。 代码:struct ListNode { int val; ListNode *next; ListNode(int x) : val(原创 2017-04-04 16:24:10 · 373 阅读 · 0 评论 -
LeetCode 202. Happy Number
题目: Write an algorithm to determine if a number is “happy”.A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares原创 2017-04-04 16:22:09 · 244 阅读 · 0 评论 -
LeetCode 258. Add Digits
题目: Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.For example:Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one dig原创 2017-04-04 16:26:03 · 291 阅读 · 0 评论 -
LeetCode 292. Nim Game
题目: You are playing the following Nim Game with your friend: There is a heap of stones on the table, each time one of you take turns to remove 1 to 3 stones. The one who removes the last stone will be原创 2017-04-04 16:27:12 · 263 阅读 · 0 评论 -
LeetCode 344. Reverse String
题目: Write a function that takes a string as input and returns the string reversed.Example: Given s = “hello”, return “olleh”.思路: 逆序一个字符串,用reverse_iterator代码:class Solution {public: string rever原创 2017-04-04 16:27:32 · 289 阅读 · 0 评论 -
LeetCode 371. Sum of Two Integers
题目: Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -.思路: 其实就是模拟进位 1.首先最低位相加是要进一的 2.然后在做第二位的运算 3.以此类推,一直到没有进位为止。代码:class Solution {public: int get原创 2017-04-04 16:28:32 · 497 阅读 · 0 评论 -
LeetCode 412. Fizz Buzz
题目: Write a program that outputs the string representation of numbers from 1 to n.But for multiples of three it should output “Fizz” instead of the number and for the multiples of five output “Buzz”.原创 2017-04-04 16:28:59 · 334 阅读 · 0 评论 -
LeetCode 463. Island Perimeter
题目: You are given a map in form of a two-dimensional integer grid where 1 represents land and 0 represents water. Grid cells are connected horizontally/vertically (not diagonally). The grid is complet原创 2017-04-04 16:29:28 · 464 阅读 · 0 评论 -
LeetCode 476. Number Complement
题目: Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation.Note: 1. The given integer is guaranteed to fit within the range o原创 2017-04-04 16:29:45 · 294 阅读 · 0 评论 -
LeetCode 232. Implement Queue using Stacks
题目: Implement the following operations of a queue using stacks.push(x) – Push element x to the back of queue. pop() – Removes the element from in front of queue. peek() – Get the front element. emp原创 2017-04-05 09:27:22 · 311 阅读 · 0 评论 -
LeetCode 496. Next Greater Element I
题目: You are given two arrays (without duplicates) nums1 and nums2 where nums1’s elements are subset of nums2. Find all the next greater numbers for nums1’s elements in the corresponding places of nums原创 2017-04-05 09:27:53 · 505 阅读 · 0 评论 -
《C和指针》——字符串操作补、字符串内存操作
1.对于 *string++!='\0',它其实等价于:*string!='\0'; string++; 2.对于 strcpy函数,如果要复制的字符串比老字符串短,由于新字符串是以NUL(即’\0’)结尾,所以老字符串最后剩余的几个字符也会被有效地删除。 如:char message[ ]=="Original message";strcpy(message,"Different");此时原创 2017-04-05 15:12:32 · 350 阅读 · 0 评论 -
《剑指Offer》 跳台阶
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路: 当要跳1阶时为1种,要跳2阶时为2种,当跳n(n>2)阶时,种数为前两个种数相加。 递归调用的时间太长,这在斐波那契数列的题中已经说过 代码:class Solution {public: int jumpFloor(int number) { if(numb原创 2017-04-06 16:15:56 · 338 阅读 · 0 评论 -
LeetCode 189. 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].Note: Try to come up as many solutions as you can,原创 2017-04-06 16:47:15 · 281 阅读 · 0 评论 -
LeetCode 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 hold addit原创 2017-04-06 16:16:58 · 324 阅读 · 0 评论 -
LeetCode 283. Move Zeroes
题目: Given an array nums, write a function to move all 0’s to the end of it while maintaining the relative order of the non-zero elements.For example, given nums = [0, 1, 0, 3, 12], after calling your原创 2017-04-06 16:48:35 · 297 阅读 · 0 评论