c++写简单的算法
那我就换个名字吧
这个作者很懒,什么都没留下…
展开
-
C++递归创建、非递归遍历二叉树的基本操作
最近学了二叉树,这个数据结构和它的名字一样,真是二叉。如果单纯的让我想这样的算法,以笔者的脑子想一辈子都想不出来。二叉树刚学完,老师又讲了图。俗话说,不能在一棵树上吊死,那我选择在二叉树上吊死。关键是图还在下面扯着你,二叉树这个数据结构不会真的是憋死人。下面,我将我各种查阅书籍与上网翻找得出的结果告诉大家,让大家能够清楚地了解二叉树的基本操作。原创 2017-10-22 16:22:38 · 4372 阅读 · 1 评论 -
堆的基本性质与排序算法的实现
前段时间申了腾讯移动开发暑期实习,昨天一轮面试被问到堆的问题(面试官人很好~)。这里的堆是数据结构中的堆,而不是操作系统的堆。然而,堆排序时间太久了,忘掉了一些基本概念,于是面试不出意外是挂掉了(当然不止堆没答上来)。这里总结一下堆的性质,为以后申公司做好准备吧!腾讯面试官问了我一个问题,说100个数字存放在堆中,最差时间找到这个数字是多少。我不确定,先是回答了一个O(nlgn),后来他要具体...原创 2019-03-19 22:19:42 · 1208 阅读 · 0 评论 -
7. 反转整数(简单题)
给定一个 32 位有符号整数,将整数中的数字进行反转。示例 1:输入: 123输出: 321 示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。这道题说简单也简单,说难...原创 2018-08-25 15:22:43 · 5192 阅读 · 1 评论 -
2. 两数相加(leetcode中档题)
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807怎么说呢,这题还是蛮阴险的。我一开始...原创 2018-08-21 23:13:40 · 214 阅读 · 0 评论 -
1. 两数之和(leetcode简单题)
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]class Solution {public: vector<int>...原创 2018-08-21 21:53:00 · 145 阅读 · 0 评论 -
4. 两个排序数组的中位数(困难题)
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。你可以假设 nums1 和 nums2 不同时为空。示例 1:nums1 = [1, 3]nums2 = [2]中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]中位数是 (...原创 2018-08-24 18:41:09 · 211 阅读 · 0 评论 -
3. 无重复字符的最长子串(中等难度)
给定一个字符串,找出不含有重复字符的最长子串的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 无重复字符的最长子串是 "abc",其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 无重复字符的最长子串是 "b",其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 无重复字符的最长子串是 "wke",其原创 2018-08-23 17:19:26 · 480 阅读 · 1 评论 -
C++写链表一些基础的操作
#include <iostream>using namespace std;class node{public: int data; node *next;};class list{private: node *head; node *temp;public: list():temp(NULL),head(NULL)...原创 2017-09-18 21:51:37 · 788 阅读 · 0 评论 -
用双链表从尾端查找数据为什么会超时?
我在做算法作业的时候,写出来一个程序,提交对答案之后,只是部分,有一部分测试程序发现超时,不知为何,也不知道如何解决,请大牛告诉原因以及解决方法!以下为我写的代码:#includeusing namespace std;class node{public: int data; node *previous; node *next;};clas原创 2017-10-02 21:33:44 · 319 阅读 · 1 评论 -
双链表求倒数第k项
#includeusing namespace std;class node{public: int data; node *previous; node *next;};class list{private: node *last; node *temp;public: list():last(NULL),temp(NULL){}原创 2017-10-14 10:17:51 · 291 阅读 · 0 评论 -
关于Xcode中"signal SIGABRT"调试崩溃的问题
今天用xcode编写c++程序的时候,蹦出来了个“signal SIGABRT”。其实以前也老是出现相似问题。具体情况是出现在某行或者类的定义中class node{ //signal SIGABRT XXXXXXXXX; XXXXXXXXX;};此类情况大多是因为前面定义了一个“非释放类型”的对象,后面却又将其释放,因此计算机找不到可释放的对象例原创 2017-10-17 18:25:21 · 26500 阅读 · 2 评论 -
C++利用链表将英文单词排序
传统意义上的数组很难将不定数量的单词进行排序,主要因为数组多是静态分配,如果想动态分配,需要用到顺序表或者链表的的知识。下面就为大家献上c++用链表排序英文单词的算法。#include #include using namespace std;class node{public: string word; unsigned long x; node *next;原创 2017-10-21 16:23:31 · 2703 阅读 · 0 评论 -
快速排序简说与实现
大三了,该找实习了。但是大二学的各种算法已经忘完了,在这里复习一下,做个笔记。我们要解决几个问题:什么是快速排序? 快速排序的性能如何? 快速排序是怎么实现的?我们先看第一个问题:什么是快速排序? 快速排序是一种运用了分治思想的排序,是一种内排序(数据存储在内存中的排序)。所谓分治思想,就是分而治之,这类思想在排序算法中拥有很高的使用率,得益于它的时间复杂度。...原创 2019-03-18 15:38:16 · 268 阅读 · 0 评论