![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础数据结构和算法
chi_mian
非计算机专业学生
展开
-
Binary Tree Maximum Path Sum 求二叉树的最大路径和
原题地址:https://discuss.leetcode.com/category/132/binary-tree-maximum-path-sum 这道题求解一个二叉树的最短路径,该路径可以从任何一个节点开始,从任何一个节点结束,只要其和是最小的,参考LeetCode大神的答案,如下:class Solution { int sum;public: int maxP转载 2018-02-05 20:33:22 · 108 阅读 · 0 评论 -
CCF 17_09_2 火车购票
#include<iostream>#include<vector>#include<algorithm>using namespace std;int main(){ vector< bool> all(100,false); int opt, order; cin >> opt; f...原创 2018-03-12 15:29:45 · 131 阅读 · 0 评论 -
CCF201604-3 路径解析
思路 首先把绝对目录和相对目录都转换成绝对目录,即加上目前的目录; 然后将中间多余的“/”、”/../”、”/./”都根据实际情况舍去; 判断是否是根目录,如果是根目录,加一个“/”; 最后注意的是有可能输入是一个换行符,则表示目前的目录,所以输入格式要注意。// 16_04_3.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"...原创 2018-03-17 17:06:23 · 146 阅读 · 0 评论 -
CCF201612-4 压缩编码(10分)
100分的答案在这里:http://blog.csdn.net/tigerisland45/article/details/61622152 这道题是一个动态规划的题,寻找最接近中点的两个节点,然后分开,这样,最后,每一个单词总的编码长度是最短的,关键在于理解一个单词编码一次长度加一,然后再与其他单词编码,长度再加一,我这里用到了一个递归的思想,模仿霍夫曼编码,进行了一个模拟,最终结果也是对的,...原创 2018-03-17 15:25:50 · 343 阅读 · 0 评论 -
CCF 学生排队问题
核心思想:这个问题是随机的插入和删除,因此选择链表list作为容器,过程中通过insert和eraser来进行模拟插入和删除的操作。#include<iostream>#include<list>#include<algorithm>#include<iterator>using namespace std;void print(...原创 2018-03-10 19:08:57 · 1134 阅读 · 0 评论 -
CCF 公共钥匙盒
// borrow_keys.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>#include<algorithm>#include<vector>using namespace std;struct change{ int time; int order...原创 2018-03-09 15:01:19 · 162 阅读 · 0 评论 -
CCF 第二题:游戏
这是网上大神的解我的解#include<iostream>#include<list>#include<algorithm>using namespace std;void erase(list<int> &lt, int cc,int begin){ int i = begin; list<...原创 2018-03-08 19:53:05 · 410 阅读 · 0 评论 -
Leetcode 240. Search a 2D Matrix II
题目描述 这道题的意思是从一个排好序的矩阵中搜索一个值是否存在,矩阵每一行每一列都是按照从小到大排列。 要提高效率,就要尽量减少比较元素的数目,因此,从第一列开始比较,当最后一个元素都小于该值时,则跳到下一行,若有大于该值的元素,则向前退,当小于该值时,若不是第一个元素,则向下运动一行。 关键:这里的j是递减的,即调到下一行也不会重新赋值,因为这是由矩阵的特性决定的,当上一行的该列元素大...原创 2018-03-06 18:56:28 · 100 阅读 · 0 评论 -
LeetCode 4. Median of Two Sorted Arrays 求两个有序数组的中位数
链接:https://leetcode.com/problems/median-of-two-sorted-arrays/description/ 这道题主要是对时间复杂度有要求,因此,限制了解求的方式。 参考Discuss中的最高票答案,进行了很全面的分析,关键点在于对两个数组进行联合的二分法查找,由于两个数组都是有序的,因此,它们中位数是满足一个条件的: (m+n+1)/2==i+j原创 2018-02-06 15:37:27 · 100 阅读 · 0 评论 -
leetcode596:496. Next Greater Element I(寻找元素对应位置的下一个较大值)
原题:https://leetcode.com/problems/next-greater-element-i/description/ 分析:题意是有两个数组,一个数组包含另一个数组中的所有元素,设母数组为M,子数组为N,则求N中的任意一个元素在M中的对应位置之后的大于该元素的值,如果不存在,就返回-1。 Note: All elements in nums1 and nums2 a原创 2018-02-05 22:38:21 · 169 阅读 · 0 评论 -
利用模板实现简单的栈类(数组和单链表)
主要的功能是实现一个后进先出的列表,有入栈、出栈、返回大小、判空等基本功能#pragma onceusing namespace std;const int MAXSIZE = 0xfff;template<class type>class Class_Linkstack{ int top; type* my_s; int max_size;...原创 2018-03-06 11:29:11 · 427 阅读 · 0 评论