随笔分类 -  Algorithm

摘要:71. 简化路径 唯一的坑点,"/..."这个示例,"..."是目录名 class Solution { public: string simplifyPath(string path) { deque<string> DQ; istringstream iss(path); string word 阅读全文
posted @ 2020-09-10 09:41 pusidun 阅读(110) 评论(0) 推荐(0)
摘要:206. 反转链表 递归 class Solution { public: ListNode* reverseList(ListNode* head) { if(head == nullptr || head->next == nullptr) return head; ListNode* next 阅读全文
posted @ 2020-09-09 11:02 pusidun 阅读(108) 评论(0) 推荐(0)
摘要:2. 两数相加 这题medium,但思路挺简单的。模拟下就可以 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), 阅读全文
posted @ 2020-09-08 23:17 pusidun 阅读(114) 评论(0) 推荐(0)
摘要:46. 全排列 排列,用回溯法 class Solution { public: vector<vector<int>> permute(vector<int>& nums) { vector<vector<int>> permutation; vector<bool> visited(nums.s 阅读全文
posted @ 2020-09-07 23:26 pusidun 阅读(113) 评论(0) 推荐(0)
摘要:17. 电话号码的字母组合 排列题目,很容易想到回溯。下面是ac代码。 class Solution { private: vector<string> vstrs = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"}; public 阅读全文
posted @ 2020-09-07 16:07 pusidun 阅读(167) 评论(0) 推荐(0)
摘要:题目 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 示例 2: 输入: [3,2,3,1,2,4,5,5,6] 和 k = 4 输出: 4 解法 阅读全文
posted @ 2020-06-29 14:44 pusidun 阅读(178) 评论(0) 推荐(0)
摘要:PreOrder recursive package main import "fmt" type TreeNode struct { val int Left *TreeNode Right *TreeNode } func preorderTraversal(root *TreeNode) { 阅读全文
posted @ 2020-06-14 22:12 pusidun 阅读(1092) 评论(0) 推荐(0)
摘要:[TOC] 记录下力扣上的 "剑指" 题。目前是第一遍,看了题解的前面标 "面试题06 从尾到头打印链表" 解法一:利用stack的LIFO性质。时间31.14% 空间100.00% 解法二:递归 时间66.86%,空间100% "面试题07 重建二叉树" 解法一:递归.效率很低,时间5%需要优化 阅读全文
posted @ 2020-04-12 14:42 pusidun 阅读(197) 评论(0) 推荐(0)
摘要:基础算法 选择 void selection(vector<int>& vec) { if(vec.size() <= 1) return; for(int i = 0; i<vec.size() - 1; ++i) { int minidx = i; for(int j = i + 1; j < 阅读全文
posted @ 2020-01-28 21:32 pusidun 阅读(154) 评论(0) 推荐(0)
摘要:三种排序 以下三种排序算法复杂度O(N^2),额外空间复杂度O(1) 冒泡排序 选择排序 对数器 用来验证想法的技巧。例如有个算法复杂度高,但是能得出正确结果的算法,以及新写的一个算法复杂度低的算法。要验证新算法是否正确时,就可以用对数器 步骤: 1. 随机数生成 2. 拷贝 3. 和正确算法进行比 阅读全文
posted @ 2019-07-17 14:04 pusidun 阅读(244) 评论(0) 推荐(0)
摘要:hdoj1425 github链接 这道题数据是有范围的。我们可以将数据和存储位置做一个对应。 做法是:当数字num存在时,将hash数组下标为num的值设为true。 这样存储完毕后,就排序完成了。 拓展:如果原题中“第二行包含n个各不相同”这一条件去掉,现在允许相同,那么该怎么编写? #incl 阅读全文
posted @ 2018-03-15 14:28 pusidun 阅读(181) 评论(0) 推荐(0)
摘要:栈 实现 后进先出的结构,主要有如下操作 Stack() push(item) pop() peek() isEmpty() size() class Stack(): def __init__(self): self.items=[] def push(self,item): self.items 阅读全文
posted @ 2017-03-27 18:12 pusidun 阅读(387) 评论(0) 推荐(0)