自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

转载 (转)CUDA排序算法(sort)

在第五讲中我们学习了GPU三个重要的基础并行算法: Reduce, Scan 和 Histogram,分析了 其作用与串并行实现方法。 在第六讲中,本文以冒泡排序 Bubble Sort、归并排序 Merge Sort 和排序网络中的双调排序 Bitonic Sort 为例, 讲解如何从数据结构课上学的串行并行排序方法转换到并行排序,并附GPU实现...

2019-01-02 17:34:16 5582

原创 CUDA 基础算法之reduce、scan、histogram

前言之前对于CUDA的学习基本上就是不会就查,拿来就用的状况,对一些基础算法的了解不是特别深,之前在面试的时候还有被问到scan扫描算法计算数组的前缀和,表示还没有详细的了解以致只能尴尬地说不清楚,是真的贼尴尬啊,后来去学了些视频课,才逐渐有了一些些基础。(说起来之前还不知道有step complexity 和 work complexity这两种复杂度呢)1、step and work co...

2018-12-30 11:21:42 2917 2

原创 名企算法与数据结构题目最优解—部分问题总结之七—1

文章目录分糖果问题题目代码一种消息接收并打印的结构设计题目代码随时找到数据流的中位数题目代码在两个长度相等的排序数组中找到上中位数及在两个排序数组中找到第K小的数题目代码两个有序数组间相加和的topK问题题目代码出现次数的topK问题题目代码KMP算法题目代码分糖果问题题目一群孩子做游戏,请根据游戏得分分发糖果,要求如下:1、不管每个孩子得分多少,起码分到一个糖果2、任意两个相邻的孩子之...

2018-12-11 17:18:35 500

原创 名企算法与数据结构题目最优解—部分问题总结之七

文章目录最大的leftMax与rightMax之差的绝对值题目代码路径数组变为统计数组题目代码正数数组的最小不可组成和题目代码一种字符串和数字的对应关系题目代码1到n中1出现的次数题目代码从N个数中等概率打印M个数和判断一个数字是否为回文数题目代码在有序旋转数组中找到最小值以及在有序旋转数组中找到一个数题目代码最大的leftMax与rightMax之差的绝对值题目给定一个长度为N(N>...

2018-12-11 16:20:33 563

原创 丢棋子问题、画匠问题和邮局选址问题

文章目录写在代码之前丢棋子问题题目代码画匠问题题目代码邮局选址问题题目代码写在代码之前这三题是书中的最后三题,把它们写在一块是因为三个问题的解法中都有对动态规划解法和对动态规划的四边形不等式优化的解法。问题是在与看了一些动态规划的四边形不等式优化讲解之后还是没有特别理解,在此做个小记录,后面有时间再进一步分析。丢棋子问题题目一座大楼有0~N层,地面算第0层,最高一层为第N层,已知棋子从第...

2018-12-11 15:17:07 528

原创 数组问题分类之六

文章目录边界都是1的最大正方形大小题目代码不包含本位置值的累乘数组题目代码数组的partition调整题目代码最短通路值题目代码数组中未出现的最小正整数题目代码数组排序之后相邻数的最大差值题目代码边界都是1的最大正方形大小题目给定一个N×N的矩阵matrix,在这个矩阵中,只有0和1两种值,返回最大正方形的边长长度。如:0 1 1 1 10 1 0 0 10 1 ...

2018-12-04 16:58:38 327

原创 数组问题之七

文章目录计算数组小和题目代码自然数数组的排序题目代码奇数下标都是奇数或者偶数下标都是偶数题目代码子数组的最大累加和问题题目代码在数组中找到一个局部最小的位置题目代码数组中子数组的最大累乘积题目代码计算数组小和题目数组小和定义如下:数组s=[1,3,5,2,4,6],在s[0]的左边小于等于s[0]的数的和为0,在s[1]的左边小于或等于s[1]的数的和为1,在s[2]的左边小于等于s[2]...

2018-12-02 23:27:32 257

原创 数组的子数组长度系列问题之四

文章目录最长的可整合子数组的长度题目代码不重复打印排序数组中相加和为给定值的所有二元组和三元组题目代码未排序正数数组中累加和为给定值的最长子数组长度题目代码未排序数组中累加和为给定值的最长子数组系列问题题目代码未排序数组中累加和小于或等于给定值的最长子数组长度题目代码最长的可整合子数组的长度题目可整合数组的定义:如果一个数组在排序之后,每相邻两个数差的绝对值都为1,则该数组为可整合数组。如[...

2018-12-01 23:31:17 617

原创 数组和矩阵之五

文章目录打印矩阵题目代码找到无序数组中最小的k个数题目代码需要排序的最短子数组长度题目代码在数组中找到出现次数大于*N/K*的数题目代码在行列都排好序的矩阵中找数题目代码打印矩阵题目转圈打印矩阵(螺旋打印);旋转矩阵,将矩阵调整成顺时针转动90度之后的形式;之字形打印矩阵;给定一个矩阵,按照“之”字形的方式打印这个矩阵。代码按照书中的方式分别实现了三种打印的方式,书中给出的方法与剑指...

2018-11-30 16:28:10 283

原创 位运算

文章目录不用任何比较判断找出两个数中较大的数题目代码只用位运算不用算术运算实现整数的加减乘除运算题目代码整数的二进制表达中有多少个1题目代码在其他数都出现偶数次的数组中找到出现奇数次的数题目代码在其他数都出现k次的数组中找到只出现一次的数题目代码后记不用任何比较判断找出两个数中较大的数题目给定两个32位整数a和b,返回a和b中较大的数。要求:不用任何比较判断代码#include<...

2018-11-29 23:34:30 386

原创 字符串问题—其七

文章目录0左边必有1的二进制字符串数量题目代码拼接所有字符串产生字典顺序最小的大写字符串题目代码找到字符串的最长无重复字符子串题目找到被指的新类型字符题目代码最小包含子串的长度题目代码回文最少分割数题目代码字符串匹配问题题目代码0左边必有1的二进制字符串数量题目给定一个整数N,求由”0“字符与”1“字符组成的长度为N的所有字符串中,满足”0“字符的左边必有”1“字符的字符串数量。举例:N...

2018-11-25 22:02:38 832

原创 字符串问题—其四

文章目录数组中两个字符串的最小距离题目代码添加最少字符使字符串整体都是回文字符串题目代码括号字符串的有效性和最长有效长度题目代码公式字符串求值题目代码数组中两个字符串的最小距离题目给定一个字符串数组strs,再给定两个字符串str1和str2,返回在strs中str1和str2的最小距离,如果str1和str2为NULL,或不在strs中,返回-1。进阶题目:如果查询发生的次数较多,如何把...

2018-11-24 23:24:03 540

原创 字符串问题-其五_1

文章目录替换字符串中连续出现的制定字符串题目代码字符串的统计字符串题目代码判断字符数组中是否所有的字符都只出现过一次题目代码在有序但含有空的数组中查找字符串题目代码字符串的调整和替换翻转字符串题目代码替换字符串中连续出现的制定字符串题目给定三个字符串str、from和to,把str中所有from的子串全部替换成to字符串,对连续出现from的部分要求只替换成一个to字符串,返回最终的结果字符...

2018-11-23 20:32:52 180

原创 字符串问题—其五

文章目录判断两个字符串是否互为变形词题目代码字符串中数字子串的求和题目代码去掉字符串中连续出现k个0的子串题目代码判断两个字符串是否互为旋转词题目代码将整数字符串转成整数值题目代码判断两个字符串是否互为变形词题目给定两个字符串s1和s2,如果s1和s2中出现的字符种类一样且每种字符出现的次数也一样,那么s1和s2互为变形词。请事先函数判断两个字符串是否互为变形此。代码用一哈希表来进行记录...

2018-11-22 20:53:56 232

原创 递归与动态规划之六

文章目录龙与地下城游戏题目代码数字字符串转换为字母组合的种数题目代码表达式得到期望结果的组成种数题目代码排成一条线的纸牌博弈问题题目代码跳跃游戏题目代码数组中的最长连续序列题目代码龙与地下城游戏题目给定一个二维数组map,含义是一张地图。游戏规则如下:1、骑士从左上角出发,每次只能向右或向下走,最后到达右下角见到公主。2、地图中每个位置的值表示骑士的遭遇。如果是负数,此处有怪兽,要让骑士...

2018-11-21 17:08:33 495

原创 递归与动态规划之五—1

文章目录汉诺塔问题题目代码最长公共子序列问题题目代码最长公共字串问题题目代码最小编辑代价题目代码字符串的交错组成题目代码汉诺塔问题题目给定一个整数n,代表汉诺塔游戏中从小到大放置的n个圆盘,假设开始时所有的圆盘都放在左边的柱子上,想按照汉诺塔游戏的要求把所有的圆盘都放到右边的柱子上,实现函数打印最优移动轨迹。进阶题目可参考原书代码#include<iostream>#in...

2018-11-21 16:05:20 124

原创 递归与动态规划之五

文章目录斐波那契系列问题的递归与动态规划题目代码矩阵的最小路径和题目代码换钱的最少货币数题目代码换钱的方法数题目代码最长递增子序列题目代码斐波那契系列问题的递归与动态规划题目给定整数N,返回斐波那契数列的第N项。补充题目1:给定整数N,代表台阶数,一次可跨越1个或2个台阶,返回有多少种走法。补充题目2:假设农场成熟母牛每年生一只小母牛,永远不会死。第一年农场有1只成熟母牛,从第二年开始,...

2018-11-21 11:15:23 144

原创 二叉树问题之七

文章目录调整搜索二叉树两个错误的节点题目代码判断t1树是否包含t2树全部的拓扑结构题目代码先序、中序和后序数组两两结合重构二叉树题目代码在二叉树中找到一个节点的后继节点题目代码在二叉树中找到两个节点的最近公共祖先题目代码二叉树节点间的最大距离问题题目代码统计完全二叉树的节点数题目代码调整搜索二叉树两个错误的节点题目一颗二叉树原本是搜索二叉树,但其中两个节点调换了位置,使得这棵而出书不再是搜索...

2018-11-20 16:02:12 664

原创 二叉树问题之五

二叉树分别用递归和非递归方式实现二叉树先序、中序和后序遍历代码二叉树的序列化和反序列化题目代码遍历二叉树的神级方法(Morris遍历)题目代码在二叉树中找到累加和为指定值的最长路径长度题目代码二叉树的按层打印与ZigZag打印题目代码分别用递归和非递归方式实现二叉树先序、中序和后序遍历代码包含测试用例,#include<iostream>#include<stack&g...

2018-11-20 13:49:46 153

原创 环形单链表的约瑟夫问题

题目用单向环形链表描述约瑟夫环并呈现整个自杀过程。详细题目见原书。要求输入:一个环形单向链表头节点head和报数的值m返回:最后生存下来的节点,并且这个节点自己组成环形单向链表,其他节点都删除;进阶:如果链表节点数位N,要求在时间复杂度*O(N)*内完成原问题的要求。代码#include<iostream>using namespace std;struct no...

2018-11-20 10:56:20 222

原创 链表问题合集

算法与数据结构题目最优解-部分链表题目判断一个链表是否为回文结构题目代码复制含有随机指针节点的链表题目代码两个链表生成相加链表题目代码两个单链表相交的一系列问题题目要求解题思路代码将单链表的没K个节点之间逆序题目代码判断一个链表是否为回文结构题目给定一个链表的头节点head,请判断该链表是否为回文结构;进阶:如果链表长度为N,要求时间复杂度达到O(N),额外空间复杂度为O(1)。代码代...

2018-11-20 10:56:01 164

原创 反转链表

反转链表和部分链表反转链表要求代码反转部分链表要求几个关键点代码反转链表分别实现反转单向链表和反转双向链表的函数要求若链表长度为n,要求时间复杂度为O(n),空间复杂度为O(1).反转双链表与单链表的区别只在于一个前向指针的设置问题代码#include<iostream>using namespace std;struct node { int value; n...

2018-11-19 17:57:05 102

原创 删除链表的中间节点和a/b处的节点

题目给定链表的头节点head,实现删除链表中间节点的函数和删除位于a/b处节点的函数。 当有偶数个节点时,删除两个中间节点的前一个,有奇数个节点时,删除中间节点。删除a/b处的节点:链表1->2->3->4->5,假设a/b的值为r,如果r = 0,不删除任何节点。如果r在区间(0,1/5]上,删除节点1;依次类推;如果r>1,则不删除任何节点。具体题目可参考原...

2018-11-19 17:26:56 166

原创 在单链表和双链表中删除倒数第K个节点

题目分别实现两个函数,一个可以删除单链表中倒数第K个节点,另一个可以删除双链表中倒数第K个节点。要求如果链表长度为n,则要时间复杂度达到O(N),额外空间复杂度达到O(1).思路一种方法是设置快慢指针,快指针先走k步,此时慢指针从头开始走,两者同时开始走,当快指针走到尾时,慢指针走到倒数第K个节点,删除当前慢指针的节点,(问题是要记录前后两个节点)单链表和双链表两种情况。书中给出的方法...

2018-11-19 17:16:02 118

原创 最大值减去最小值小于或等于num的子数组数量

题目给定数组arr和整数num,共返回有多少个子数组满足如下情况:max(arr[i…j]) - min(arr[i…j]) <= nummar(arr[i…j])表示数组arr[i…j]中的最大值,min(arr[i…j])表示子数组arr[i…j]中的最小值。要求如果数组长度为N,请事先时间复杂度为*O(N)*的解法。具体思路请参考书籍代码#include<iost...

2018-11-19 17:06:21 139

原创 求最大子矩阵的大小

题目给定一个整型矩阵map,其中的值只有0和1两种,求其中全是1的所有矩形区域中,最大矩形区域为1的数量。要求时间复杂度达到O(mn)具体思路请参考原书代码#include<iostream>#include<stack>#include<algorithm>using namespace std;int maxRecFromBottom(...

2018-11-19 16:17:51 226

原创 生成窗口的最大值数组

题目有一个整型数组arr和一个大小为w的窗口从数组的最左边滑到最右边,窗口每次向右边滑动一个位置。输入:整形数组arr,窗口大小为w。输出:一个长度为n-w+1的数组res,res[i]表示每一种窗口状态下的最大值。要求:时间复杂度为O(n)。思路跟剑指offer是同一题目,采用双端队列,在队列中存放原数组的下标,分别在队列头和队列尾进行对应操作。判断条件能够考虑清楚就好具体代码...

2018-11-19 15:51:12 139

原创 用一个栈实现另一个栈的排序

题目一个栈中的元素类型为整型,现在想将该栈从顶到底按从大到小的顺序排序,只许申请一个栈,可以申请新变量,但不能申请额外的数据结构,如何完成排序?思路申请辅助栈help,如果从stack出栈的元素大于辅助栈的栈顶元素,那么将辅助栈元素一一弹出并将其重新压入原始栈,直到当前元素小于辅助栈栈顶或者辅助栈为空时,将当前元素压入。如果要求从栈顶到栈底从小到大,那么只需判断从stack的元素小于辅助...

2018-11-19 15:19:57 123

原创 猫狗队列

题目实现一种猫狗队列的结构,具体要求可参考书本。实现同参考原书实现过程中遇到的一些问题首先根据书中类的设计准则,一个入队的新类型要包括当前入队的宠物类型以及入队的时间戳,在出队时要根据时间戳来依次出队。在popDog()函数设计返回时,由于返回的需要是dog类型,可以初始化一个基类的指针指向派生类的引用,然后再可以让基类指针指向pop类型,返回结果。代码#include<iost...

2018-11-19 15:03:53 109

原创 仅使用递归函数和栈操作逆序一个栈

题目一个栈依次压入1,2,3, 4, 5,那么从栈顶到栈底分别为5, 4, 3, 2, 1。将这个栈转置后,从栈顶到栈底为1,2,3, 4, 5,也就是实现栈中元素的逆序,但是只能使用递归函数来实现,不能使用其他数据结构。解题参考和一些坑共两个递归函数来实现逆序:第一个函数需要将得到一个栈的栈底,并将栈底元素移除,同时还需要将除栈底外的元素按照原顺序压入栈中第二个逆序函数需要将取得的元素...

2018-11-19 14:55:15 239

原创 由两个栈组成的队列

题目编写一个类,用两个栈实现队列,支持队列的基本操作有(push,pop,top)解题思路开始自己的思路有点偏差,想着是在push时就完成从stack1到stack2的迁移,但是实际上并没有必要push时只进行push操作即可,push向stack1放入一个数据。在pop时,首先判断两个栈是否都为空,若是则当前队列为空;否则必须在将stack1中的所有元素放入之后才能逐个从stack2...

2018-11-19 14:42:25 269

原创 设计一个有getMin功能的栈

左神原书中所有代码是JAVA实现的,由于我常用C/C++,所以我根据书中思路将代码改成了C++实现,话不多说题目及要求要求实现一个特殊的栈,在原栈的基本功能基础上实现返回栈中最小元素的操作。要求pop,push,和getMin的时间复杂度是O(1);可以使用现成的栈结构。思路两种考虑方式:主要原理还是依靠两个栈来完成 dataStack和minStack1、在栈压入单个数据时,比较当前...

2018-11-18 23:03:15 98

原创 第一次写博客

记第一次写博客很久之前就被提醒过说要写博客,但是由于懒等各种原因,外加markdown不熟悉(现在markdown也不熟悉,边写边学吧,蠢哭),就一直没有写过。之前的 一些临时学到的东西被记录在各种word中,后来想二次学习时会有各种找不到,就比较烦,所以打算维护一个CSDN的博客先,将写过的一些代码以及练习之类的放上来以便下次的学习。目前是先打算将之前参考的IT名企算法与数据结构题目最优解的一...

2018-11-18 22:28:24 87

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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