算法
code的魅力
这个作者很懒,什么都没留下…
展开
-
C++归并排序(完整版)
#include <iostream>#include <vector>using namespace std;void merge(vector<int> &arr,int L,int mid,int R){ int *help = new int(R-L+1); int p1=L,p2=mid+1,i=0; while(p1<...原创 2019-02-28 16:15:22 · 22622 阅读 · 6 评论 -
剑指Offer【不用加减乘除做加法】C++
题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。code:两个数异或:相当于每一位相加,而不考虑进位; 两个数相与,并左移一位:相当于求得进位; 将上述两步的结果相加class Solution {public: int Add(int num1, int num2) { if(num2==0) ...原创 2019-03-04 16:08:52 · 222 阅读 · 0 评论 -
C++打印两个有序链表的公共部分
C++打印两个有序链表的公共部分cede:#include <iostream>#include <list>#include <iterator>using namespace std;int main(){ int m,n,temp; //输入两个链表的长度m,n cin>>m>>n; list<i...原创 2019-03-02 21:22:16 · 758 阅读 · 0 评论 -
leetcode C++ 从排序数组中删除重复项
code:class Solution {public: int removeDuplicates(vector<int>& arr) { if(arr.size() < 1) //判断数组大小 return 0; int num = 0; //记录不重复的数...原创 2019-03-05 20:01:11 · 833 阅读 · 0 评论 -
在行列都排好的矩阵中找特定元素(有序矩阵找特定元素)C++实现
code:#include <iostream>#include <vector>using namespace std;#define M 3#define N 4//在行列都排好序的矩阵中找数//一般从右上角开始,如果角点比目标数小,那么划去一行,如果比目标数大,划去一列//划去一行bool mysearch(vector< vec...原创 2019-03-02 17:21:40 · 1351 阅读 · 0 评论 -
C++旋转正方形矩阵
题目:给定一个正方形矩阵,把该矩阵调整成顺时针旋转90度的样子code:#include <iostream>#include <vector>using namespace std;void print_matrix(vector< vector<int> > arr){ for (int i=0;i<arr.size...原创 2019-03-02 13:50:40 · 1118 阅读 · 0 评论 -
C++ 顺时针转圈打印程序(顺时针打印矩阵)
题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。如:输入矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.思路:对于这类题,可使用"转圈"的方法从外向内遍历矩阵。对于遍历到的每一圈,按照从左往右 从上往下 从右往左 从下往上...原创 2019-03-01 21:36:00 · 2273 阅读 · 0 评论 -
给定数组,求排序之后相邻两个数的最大差值。【要求】:时间复杂度O(N),且不能用 非基于比较的排序。
给定数组,求排序之后相邻两个数的最大差值。【要求】:时间复杂度O(N),且不能用 非基于比较的排序。C++实现:#include <iostream>#include <vector>#include <algorithm>using namespace std;int bucket(int num,int len,int min,int ...原创 2019-03-01 11:03:42 · 571 阅读 · 1 评论 -
C++堆排序(完整版)
堆排序步骤:(1)变为大顶堆;根节点的值大于等于其孩子节点的值。堆是一个完全二叉树,很适合用顺序结构来实现,这里我们选择数组。(2)最后一个数据和最顶部节点数据交换(最大值放在最后),然后再进行一次调整(heapify函数),变为大顶堆(此时heapsize减1)。#include <iostream>#include <vector>using name...原创 2019-02-28 16:22:36 · 3804 阅读 · 1 评论 -
leetcode 7 整数反转 C++ (详细版)
code:class Solution {public: int reverse(int x) { int num=0; while(x) { if(num>INT_MAX/10 || num<INT_MIN/10) return 0; num = num*10+x%10...原创 2019-03-07 10:47:53 · 1855 阅读 · 1 评论