自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 再遇PAT天坑之1075. PAT Judge (25)

25分的模拟题能这么繁琐也是醉了。。。 1.不用判断分数是否会超过FullMark 2.如果学生A被输出,他曾提交过某题x,但是没通过即输入“A x -1”,x成绩输出为0 3.与上相对,如果学生A所有题都没通过过,但是曾经提交过-1,不被输出 4.按照总分递减、答对递减、ID递增的顺序排列,仅列出有成绩的学生(0 - - -也算,但是- - - -不算) The r

2017-04-15 17:36:21 157

原创 PAT天坑之1074. Reversing Linked List (25)

Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6, if K = 3, then you must output 3→2→1→6→5→4; if K =

2017-04-15 15:25:11 652

原创 证明在含环的链表中,快慢指针最终会相遇。

证明:两指针相遇后再走n步,指针一能回到环的入口因为总节点数为m+n,由于两者在m点相遇,再走n步必然刚好遍历完所有节点,回到环的入口

2017-03-22 19:25:20 892

原创 剑指offer-数组中的逆序对

题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 输入描述: 题目保证输入的数组中没有的相同的数字 数据范围: 对于%50的数据,size<=10^4 对于%75的数据,size<=10^5 对于%

2017-03-21 14:35:09 191

原创 机器学习-第二天-线性分类器

实际上最后机器学习输出的是一个关于模型中所有参数的函数h(x) Xi为模型中各种参数的参数值,Wi为权值,表示每个参数所占的重要性。 threshold为阈值,在所有参数加权求和后得到的值减去阈值后得到h(x) 称h(x)为感知机 假设说只有两种类型的参数,那很显然h(x)是一个二元一次函数,在平面上表示为一条直线。那么实际上在直线上方的输入数据表示感知机输出为+的结果,而在直线下方的数

2017-03-20 20:58:51 260

转载 约瑟夫问题 mark

把问题重新描述一下:N个人(编号0~(N-1)),从0开始报数,报到(M-1)的自杀,剩下的人继续从0开始报数。求最后自杀者的编号。 N个人编号如下:第一个自杀的人是(M-1)%N,例如上图中,41个人中,报到3的人自杀,则字一个自杀的人的编号是(3-1)%41=2。编号(M-1)%N自杀后,剩下的人排列如下:有人自杀后,下一个位置M又从零开始报数,因此环应该如下:将上面的排列顺序重新编号:问题变

2017-03-20 20:24:50 239

原创 剑指offer-求1+2+3+..n的和

题目描述 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。除了构造函数函数指针之类的,有一个很精妙的方法,利用与在C++中若前面为假 ,则后面不计算。 int Sum_Solution(int n) { int ans=n; ans&&(ans+=Sum_Solution

2017-03-20 19:32:57 232

原创 剑指offer-数组中和为S的两个数

题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述: 对应每个测试案例,输出两个数,小的先输出。主要思路: 设置两个三个下标l,m,r;r为一开始中数组中小于等于S的下标,m为一开始数组中小于等于S/2的下标,l为0;因为中间结果要求乘积最小的数先输出,因此从两边往中间搜索到的第一组合适的数据必

2017-03-19 20:19:46 274

原创 剑指offer-和为S的连续正序列

主要思路:首先由于最小的连续数字和至少为两个,因此数据量其实只要为输入数据的二分之一就好了,因为100=50+50,大于50的都不可能为连续的数字,选取两个下标l和r用来指示,add为当前所加的和,当add的值大于sum时,则减去left,left的坐标右移,当add的值小于sum时则加上right,right的坐标右移,当add的值等于sum时,减去left,left的坐标右移,因此保证add的值

2017-03-19 19:41:59 209

原创 机器学习-第一天-机器学习的概念

机器学习实际上是从一堆数据中得到一个可以对应的预测的结果。 假设这些数据集为X,对应的预测结果为Y。 机器学习真正要做的工作是寻找一个函数,如何将X更好的映射到Y,即寻找一个f=X->Y 但是往往现实情况下不可能寻找到一个函数使得数据集中的每个x都能得到一个正确的结果y 机器学习能做的只是寻找一个函数g,使它无限接近f,当然越接近越好。这样对于大部分的x都能得到正确的结果y。 这是机器学习

2017-03-19 17:27:50 297

原创 剑指offer-数组中只出现一次的数字

题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 方法1:排序+搜索。时间复杂度O(nlogn) void FindNumsAppearOnce(vector data,int* num1,int *num2) { sort(data.begin(),data.end()); vectorresult;

2017-03-19 15:14:33 132

原创 剑指offer-平衡二叉树

对二叉树深度中的递归方程增加一条语句判断maxleft-maxright是否符合平衡二叉树即可; int find(TreeNode* root, bool &isbalanced) { int maxleft = 1, maxright = 1; if (root == NULL) return 0; if (root->left != NULL) maxle

2017-03-19 14:26:44 127

原创 剑指offer-二叉树的深度

很明显能列出递归方程 depth(i)=max(depth(left),depth(right))+1; 根据递归方程递归编写代码,时间复杂度为O(n);int find(TreeNode* root){ int depth = 0;; int maxleft = 1, maxright = 1; if (root == NULL) return depth;

2017-03-19 14:15:50 130

原创 剑指offer-数字在排序数组中出现的次数

二分 int GetNumberOfK(vector<int> data ,int k) { int l=0,r=data.size()-1; int m=(l+r)/2; bool isfind=false; int pos=-1; while(!isfind && l<=r) {

2017-03-18 19:44:21 183

原创 剑指offer-两个链表的第一个公共节点

1.用map查找暴搜,时间复杂度O(mlogn),空间复杂度O(n); ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) { map<ListNode*,int> match; ListNode* head=pHead1; while(head)

2017-03-18 19:21:51 156

原创 剑指offer-第一个只出现一次的字符

hash+vector保存字符出现的顺序,最后在vector中寻找第一个hash表中值为1的字符即为第一个只出现一次的字符 int FirstNotRepeatingChar(string str) { vector<char> order; int hash[256]; char result; for(int i=0;i<25

2017-03-18 14:55:21 213

原创 剑指offer-丑数

这道题的主要思路是根据2,3,5三个因子依次生成有序数列,每个数都判断一下是否为丑数这种思路(也就是暴搜)必超时。。 问题转换之后主要考虑的是,如何保证生成的序列是有序的且不重复,这里好蠢。。想了好久 其实设置三个下标cur2,cur3,cur5。每次开头将这三个下标的最小的数保存到数组。再对下标进行维护,保证下一次这三个下标所指的数一定是大于数组中最末尾的数,这样就避免了重复以及保

2017-03-18 14:17:16 228

原创 剑指offer-整数中1出现的次数

计算题,纯手算找规律。int NumberOf1Between1AndN_Solution(int n){ int m = n; int length = 0; int num = 0; int sum = 0; if(n==0) return 0; if (n < 10) return 1; while (m > 0) {

2017-03-17 21:59:29 130

原创 剑指offer--连续子数组的最大和

贪心策略:累加数组的每个数字,同时用last保存上次的和。 当本次和小于0时,说明前面累加的数字再往后面加只会让后面的数字更小,因此舍弃前面这段和,将其赋为0; 当累加过程中,本次的和小于上一次的和,说明本次的和极有可能为最大值,保存下该值。 考虑整个数组都为负数的情况,连续子数组的最大和实际上就是最大的一个负数。 最后比较一下,last与ma

2017-03-17 19:37:11 154

原创 剑指offer-全排列(含重复数字)

利用递归产生全排列,然后放到set里去重。方法不好,有待改进。 递归中每次把第一个元素和后面的元素交换,递归调用得到全排列。void permuta(string str, set<string> &s, int first){ char temp; string begin = str; if (first > str.size() - 1) return; f

2017-03-17 19:04:29 180

原创 二叉搜索树和双链表转换

递归版由于二叉搜索树本身是有序的,利用中序遍历可以从小到大得到树中的元素,因此在中序遍历的递归过程中,每次保存上一次遍历过的节点,同时将其构造为双向链表,注意最后返回的根节点是中间节点,不是头节点。TreeNode* pre(TreeNode* root){ TreeNode*last; if (root != NULL) { if (root->left

2017-03-17 14:39:39 202

原创 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-03-17 14:30:38 125

空空如也

空空如也

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

TA关注的人

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