算法
艳Yansky
一个带着好奇心,敢于去尝试的女孩!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
剑指Offer题解——合并两个排序的链表
一、题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ 二、分析 法一:递归(简单) ...原创 2019-08-09 20:47:06 · 287 阅读 · 0 评论 -
剑指Offer题解——反转链表
一、题目描述 输入一个链表,反转链表后,输出新链表的表头。 二、分析 public ListNode ReverseList(ListNode head) { if(head==null) return null; //head为当前节点,如果当前节点为空的话,那就什么也不做,直接返回null; Lis...原创 2019-08-09 20:38:16 · 295 阅读 · 0 评论 -
剑指Offer题解——链表中倒数第k个结点
一、题目 描述输入一个链表,输出该链表中倒数第k个结点。 二、分析 思路: 定义快指针和慢指针。 快指针先走 k-1 步,到达第 k 个节点。 然后两指针同时齐步走,当快指针到达末尾时,慢指针在倒数第 k 个节点上。 三、代码: public ListNode FindKthToTail(ListNode head,int k) { if (head == null...原创 2019-08-09 20:26:03 · 316 阅读 · 0 评论 -
剑指Offer题解——调整数组顺序使奇数位于偶数前面
一、题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 二、分析 看到题目后首先就冒出一种想法:另开辟一个数组的话,查找出偶数依次放进去,然后查找出奇数再放进去,但这相当于拿空间换时间,不可取。 从题目得出的信息: 相对位置不变--->保持稳定性;奇数位...原创 2019-08-09 20:16:36 · 284 阅读 · 0 评论 -
剑指Offer题解——二进制中1的个数
一、题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 二、分析 该题舍弃直接对输入数进行操作,因为考虑到负数移位存在符号位的问题,转而采取对数字1进行左移位操作,然后和输入数进行与操作,若与结果不为0,则该位上为1,计数器++,循环结束条件是1左移位之后等于0。 三、代码: int NumberOf1(int n) { int count =...原创 2019-08-09 19:40:20 · 368 阅读 · 0 评论 -
C语言 输出打印101-200之间所有素数。
思考:什么是素数?数学定义:大于1,除了1 和本身不能被其他数整除的数 为素数 编程:i > 1 && i % for( j= 2 ; j < i;j ++) == 0 不是素数反之为素数 源代码: #include "stdio.h" void main() { int i,j; for(i = 101 ; i <= 200...原创 2019-07-30 17:01:27 · 2163 阅读 · 3 评论 -
神奇的斐波那契数列
斐波那契数列 一、问题描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39 二、解题思路 在自然界中,有一个最为神奇、几百年来一直被人们热议的数列,那就是“兔子数列”。由兔子生崽崽引发对斐波那契数列一波回忆~ f(n) = f(n-1) + f(n-2),简直完美的递归环境,递归肯定很爽,关键代码两三行就搞定了,...原创 2019-02-11 21:08:20 · 1128 阅读 · 0 评论 -
旋转数组的最小数字
旋转数组的最小数字 一、问题描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 二、部分代码截图 三、解题思路 根据题目,输出非递减数组旋转之后最小值。关...原创 2019-02-11 20:39:38 · 261 阅读 · 0 评论 -
递归算法
1. 百元百鸡问题。每只母鸡3元,每只公鸡4元,每只小鸡0.5元,如果花100元钱买100只鸡,请问有哪些可能?试编程输出所有的组合。【注:每种鸡的数量都可以为零】源代码:#include<stdio.h> int main() { int hen,rooster; printf("购买有以下这些组合:\n"); for(hen=0;hen<=33;hen...原创 2018-04-03 23:01:35 · 1377 阅读 · 0 评论 -
经典的数字三角问题
刚学了动态规划,数字三角问题就是动态规划的金典案例,下面来分享一下我对此案例的理解一、问题描述数字三角形。如下图所示的数字三角形,从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,和最大的路径称为最佳路径。编写一个程序求出最佳路径上的数字之和。【注意:路径上的每一步只能从一个数走到下一层上和它最近的左边的数或者右边的数。】 7 3...原创 2018-05-26 11:34:13 · 2358 阅读 · 2 评论
分享