数据结构&算法设计
文章平均质量分 81
GPU小码农
GPU Arch/Ray tracing/游戏图形
展开
-
算法基础(二):栈的应用--迷宫解题(超详细版!)
算法基础(二):栈的应用--迷宫解题(超详细版!)。(注:为了不离开本节讨论的重点--栈,迷宫的自动生成以后重新写。这里用简单的二维数组代替,手动迷宫,呵呵!)MAP里面0代表墙(通不过),1代表空格(可通过)代码中每一步有详细注释。欢迎大家交流,嘻嘻。原创 2014-02-28 14:13:24 · 4667 阅读 · 4 评论 -
leetcode 6—— zjgzag conversion
看了大神的代码,我才知道....有如醍醐灌顶! 题意是给了一串字符,这串字符是按照zigzag--锯齿方式排列的,我们需要按人类一行行的方式去读这个字符串。 我的思路:这就是个找规律的题目阿,我的想法是将源字符串填充到一个二维矩阵当中,然后一行行的去读矩阵就好了,那么问题的关键就是如何填充这个矩阵,也就是要找到字符的位置和矩阵元素位置的关系。就以3行的zigzag为例,原创 2017-11-07 20:20:57 · 320 阅读 · 0 评论 -
leetcode 7—— integer reverse
我的代码: //必须要分离出每一位,而这个只能通过除10//如果是负数,那么乘以-1变成正数处理,之后再乘-1回去即可//所以现在考虑正数情况就可以了int reverse(long num){ bool sig = false; if (num >= INT_MAX || num <= INT_MIN) return 0; if (num < 0) { num原创 2017-11-08 13:05:31 · 340 阅读 · 0 评论 -
leetcode第11题带来的关于人生的反思
LeetCode上有些题目有点不够友好,比如第7题:string转int,测试case里面居然给了“input:+-2 , output: 0”这种类型,有啥意义??什么规则?而且题目最开始又不说这些规则,每次提交又特殊案例,disscuss里面对这道题的评价也很低,没啥意思,所以优先做支持率高的题目把。 于是今天做第11题,题目大意是:(图) 我原创 2017-11-09 16:43:15 · 704 阅读 · 0 评论 -
leetcode19--删除链表中倒数第n个节点
友情提示,刷leetcode题目的时候,先刷支持率高的题目,这些题目的质量好,我现在按照top 100 like这个列表中的顺序刷题,先把hard以下的刷完。 今天的第二题:删除链表中倒数第n个元素,要求最好是只遍历一遍。难度:中等。 我:只遍历一遍?但是不知道链表的长度,怎么在一遍之内找到呢?(如果是第一次做这个题目的同学估计会和我有)相同的疑问把。所以,该怎原创 2017-11-10 15:53:38 · 1341 阅读 · 0 评论 -
leetcode17-根据数字找到可能的按键字母组合
/*这个解法是比较巧妙的*/vector letterCombinations(string digits) { vector res; string charmap[10] = { "0", "1", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz" }; res.push_back("");//此时res的size=原创 2017-11-13 14:33:17 · 488 阅读 · 0 评论 -
leetcode-22-生成括号
题目给出括号的对数,要求我们生成正确匹配的括号字符串。 具体题意看leetcode吧,这里给出解题思想。 由于我们要找出所有满足条件的解,答案是一个解集,因此此题可以采用回溯法来解决。 “回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向原创 2017-11-13 15:33:26 · 3125 阅读 · 2 评论 -
leetcode31_Next Permutation
这道题的题目含义是:给你一串数字{1,2,4,4,6},这串数字按从前往后组的成一个数就是:12446,(假设这几个数排列组合得到的一个集合为X),要求你用这几个数字得到一个新的数字,这个新的数字要比1244大,并且是X中所有比12446大的最小数,即:14246成立。如果没找到比它大的,则输出能得到最小数的一个组合。 求解思路:因为要找下一个比它大的最小数字,倒序遍历数组,设置两原创 2017-11-14 16:09:26 · 361 阅读 · 0 评论 -
leetcode problem solve 2——Add Two Numbers
题意就不再赘述了,这里主要总结一下解题过程中感触比较深的地方。 这道题仅仅是medium水平,但是我却做了两个多小时.....我觉得主要原因是我一开始觉得很简单,然后一上来就写代码,没有做好前期的问题剖析工作,导致后面每次提交都出现不同的案例测试无法通过,然后真的就慌乱了,心想:这种问题我居然都无法控制住??!!然后心态就崩了....开始焦躁,又试图使自己再次专注解题。做人真的不能原创 2017-11-05 17:34:24 · 310 阅读 · 0 评论 -
leetcode problem solve 1——Two Sum
这道题目难度级别:easy。 题意是给定一个整形数taget和一个vectorarr,这个target是arr中两个数求和的结果,要求返回arr中这两个数的索引号。 我的解题思路是:(talk is cheap,直接show code吧) class Solution {public: vector twoSum(vector& nums,原创 2017-11-05 14:35:26 · 284 阅读 · 0 评论 -
leetcode problem solve 3——Longest Substring Without Repeating Characters
这道题我直接看disscuss了-_-,原因是我对字符串操作很陌生-_-.....看完disscuss代码后,发现字符串的处理没有我想象的那么不能接受,其实背后还是数字嘛(ascii),不要怂,不要怕,下次遇到字符串的题没理由逃避了。 disscuss里的那个9行c++代码解决这个问题的思路是很好的。 下面是代码的分析: //寻找最长的子字符串的长原创 2017-11-06 10:28:12 · 299 阅读 · 0 评论 -
leetcode33题解_Search in Rotated Sorted Array
题意:要在一个排好序的但是旋转过的序列中找给定的数字。 (通常的题目是,比如:1,2,3,4,5,6,7.找这组序列中是否有7这个数,但是这个序列在这个题目中是旋转过的,但是按哪个位置旋转不知道,比如旋转后是:4,5,6,7,1,2,3.要在这个序列中找7,题目就要求我们写算法来找是否有这个数字) 我的思路: 直接遍历一遍,O(n)复杂度-_-。原创 2017-11-15 15:28:07 · 464 阅读 · 0 评论 -
leetcode 5—— Longest Palindromic Substring
这道题是求字符串中的最长回文字符串。 回文字符串就是从前面读与从后往前读是一样的。 一看到题目,我就开始想,既然这样,那我就从前往后扫描字符串,既然回文,那肯定头尾一样,我找到一头一尾,根据头尾的位置,然后判断剩余的部分,从头往后,从尾往前,再一个个判断。 因此,代码如下: string longestPalindrome(string s)原创 2017-11-07 15:43:34 · 317 阅读 · 0 评论 -
leetcode 4——Median of Two Sorted Arrays
这道题很难,看了别人的代码都还搞了一天阿。。。 记录一下解题思路。 首先要区分中位数,不是平均数!该题是要找中位数,如果序列是奇数个,那么直接取中间的,如果是偶数个,那么取中间的两个数的平均数,所以,核心问题是,如何把两个排好的序列整合成一个序列,并且时间复杂度要求低于:o(log(m+n))。 既然要求算法时间复杂度在log级别,那肯定和二分原创 2017-11-06 19:54:17 · 844 阅读 · 0 评论 -
算法基础(三):队列基础
数据结构C语言版队列基础实现算法。新手可以看看!欢迎交流。原创 2014-02-28 22:30:20 · 1720 阅读 · 0 评论 -
算法基础(一):栈
数据结构基础(一):栈的实现,新手可以看看。欢迎交流原创 2014-02-27 18:16:03 · 1429 阅读 · 0 评论 -
算法基础(四):队列基础--循环队列
算法基础--循环队列的实现。新手可以看看。欢迎交流!原创 2014-03-01 14:06:35 · 1557 阅读 · 0 评论 -
算法基础(五):二叉树(基础)
数据结构二叉树基础实现。原创 2014-03-02 19:00:12 · 1773 阅读 · 0 评论 -
算法基础(六):广度优先探索迷宫路径(队列实现!)—超详细版!
算法基础(六):广度优先探索迷宫路径(队列实现!)—超详细版!原创 2014-03-04 18:44:30 · 5750 阅读 · 1 评论 -
算法基础(七):二叉排序树基本操作-插入、删除(附源代码加注释)
二叉排序树之基本操作-创建、插入、删除。原创 2014-03-11 21:01:07 · 1825 阅读 · 0 评论 -
算法基础(九):超详细最优二叉树构建(2)求编码
算法基础(八):超详细最优二叉树构建(2)求编码原创 2014-04-27 20:04:08 · 1491 阅读 · 1 评论 -
算法基础(十):--有向图的邻接表创建
邻接表=邻接链表。我觉得,还是要自己写写,写出来,理解才会更深一点,以前眼高手低,不知其中厉害啊。其实还是蛮有趣的!我觉得,还是要把数据结构学好,这真的很重要,工具总是在变,但是思想才是最重要的,希望自己原创 2014-04-26 17:39:24 · 9036 阅读 · 0 评论 -
算法基础(八):超详细最优二叉树构建(1)
算法基础(八):超详细最优二叉树构建(1)原创 2014-04-27 18:55:45 · 4415 阅读 · 0 评论 -
A*算法--C#版
C#版本A*算法实现过程中的一些注意事项。原创 2017-03-25 19:14:13 · 1740 阅读 · 0 评论 -
回溯算法的理解与使用
最近在做题的过程中发现很多我不会的题目的解决方法都使用了回溯算法的思想,说明我对这个算法目前掌握的还不够牢固,因此今天花时间来好好了解这个算法。 回溯算法是一种算法思想,而递归则是具体的代码结构。 就我的学习感受:回溯算法就是树结构的思维过程。 图示: 回溯算法解决问题的例子:n皇后问题,0-1背包问题,货郎问题。原创 2017-11-16 16:21:43 · 3558 阅读 · 1 评论