
算法
sophia__yu
想要获得,便得付出。
展开
-
杨辉三角
思路1:有杨辉三角排列规律得,每个数字等于它上方两个数字之和;即dp[i][j]=dp[i-1][j-1]+dp[i-1][j],那么按照这种递推方法代码如下:public class YangHui { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); ...原创 2019-03-10 23:25:33 · 282 阅读 · 0 评论 -
牛客网----删除链表中重复结点
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5。对于这个题:思路是1.首先new一个新的结点Head作为头结点,Head指向链表的第一个结点,新new一个头结点是为了防止链表第一个结点开始就有重复元素,删除了链表原有头结点...原创 2018-11-06 23:28:46 · 179 阅读 · 0 评论 -
牛客网---链表分割
编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前。给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。对于这个题:思路是:先将原链表数据分为2个集合,一个是小于x的集合l1,另一个是大于等于x的集合l2,只是把数据放进数组,并不排序,然后把l2中数据添加在集合l1后面,这样就完成小...原创 2018-11-06 23:10:56 · 339 阅读 · 0 评论 -
剑指offer----数组中出现次数超过一半的数字
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路一:排序将数组里元素从排序,然后用中间元素判断,比如 1 2 2 3 4 2 2 2 排序后是1 2 2 2 2 2 3 4,2是中...原创 2018-09-28 20:19:39 · 186 阅读 · 0 评论 -
剑指offer-----旋转数组里的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路一:顺序查找如果数组旋转后,数组可分为两部分,前部分数字是非递减,后面元素也是非递减,从第二个元素开始判断,如果后一...原创 2018-09-28 09:03:40 · 136 阅读 · 0 评论 -
剑指offer----顺时针打印矩阵
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.这个题最重要的是画图:#include<iostream>#include<vector>us...原创 2018-09-20 17:15:39 · 103 阅读 · 0 评论 -
剑指offer_编程题——跳台阶和变态跳台阶
跳台阶 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 假设我们现在在第n阶阶梯上,显然,我们上一步是在n-1阶或者n-2阶,我们可以知道,第n阶的方法=n-1阶的方法+n-2阶的方法 同样的,对于n-1阶和n-2阶我们也可以用类似的方法进行求解。 而当我们求到0阶和1阶的时候,显然方法种数分别为1、1...原创 2018-09-17 17:10:05 · 331 阅读 · 0 评论