算法
yangzqiao
一头慢腾腾的小牛犊
展开
-
算法漂流记-不同路径 II【中等】
(tail+1)%n=head。循环队列会浪费一个数组的存储空间。2.考虑使用CAS实现无锁队列,则在入队前,获取tail位置,入队时比较tail是否发生变化,如果否,则允许入队,反之,本次入队失败。出队则是获取head位置,进行cas。...原创 2020-07-11 22:28:56 · 137 阅读 · 0 评论 -
算法漂流记-移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:1、必须在原数组上操作,不能拷贝额外的数组。2、尽量减少操作次数。数组中只有0和非0,将非0按序找到所在位置后,后面直接赋值为0void moveZeroes(int* nums, int numsSize){ int j =0; for(int i=0;i<numsSize;i++ )原创 2020-06-29 23:33:31 · 125 阅读 · 0 评论 -
算法漂流记-二分查找
二分查找针对的是一个有序的数据集合,查找思想有点类似分治思想。每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为 0。循环实现:public int bsearch(int[] a, int n, int value) { int low = 0; int high = n - 1; while (low <= high)...原创 2020-03-03 22:10:48 · 112 阅读 · 0 评论 -
算法漂流记-层数最深叶子节点的和
题目给你一棵二叉树,请你返回层数最深的叶子节点的和。示例:输入:root = [1,2,3,4,5,null,6,7,null,null,null,null,8]输出:15提示:树中节点数目在 1 到 10^4 之间。每个节点的值在 1 到 100 之间。算法/** * Definition for a binary tree node. * struct TreeNo...原创 2020-01-28 16:59:44 · 198 阅读 · 0 评论 -
算法漂流记-递归
何为递归去的过程叫“递”,回来的过程叫“归”满足的三个条件一个问题的解可以分解为几个子问题的解这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样存在递归终止条件关键找到如何将大问题分解为小问题的规律,并且基于此写出递推公式,然后再推敲终止条件,最后将递推公式和终止条件翻译成代码。编写递归代码的关键是,只要遇到递归,我们就把它抽象成一个递推公式,不用想一层层的调用关...原创 2020-01-18 20:58:12 · 107 阅读 · 0 评论 -
算法漂流记-找零
题目描述Z国的货币系统包含面值1元、4元、16元、64元共计4种硬币,以及面值1024元的纸币。现在小Y使用1024元的纸币购买了一件价值为N (0 < N \le 1024)N(0<N≤1024)的商品,请问最少他会收到多少硬币?输入描述:一行,包含一个数N。输出描述:一行,包含一个数,表示最少收到的硬币数。示例1输入200输出17说明花200,需要找零824...原创 2020-01-05 23:05:37 · 84 阅读 · 0 评论 -
算法漂流记-访友
题目描述小易准备去拜访他的朋友,他的家在0点,但是他的朋友的家在x点(x > 0),均在一条坐标轴上。小易每一次可以向前走1,2,3,4或者5步。问小易最少走多少次可以到达他的朋友的家。输入描述:一行包含一个数字x(1 <= x <= 1000000),代表朋友家的位置。输出描述:一个整数,最少的步数。示例1输入4输出1示例2输入10输出2#inc...原创 2020-01-05 22:44:16 · 87 阅读 · 0 评论 -
算法漂流记-shell脚本的字符串替换
问题描述linux shell脚本的字符串替换问题,当遇到XXX时,则代表参数字符,需要将{XXX}时,则代表参数字符,需要将XXX时,则代表参数字符,需要将{XXX}替换成XXX变量对应的字符串值。首先输入行数,接着输入每行的数据,输出最后变量的值输入4xxx=lyf/ttt/testttt=wwwyyy=seeyouaa=/aaa/{ttt}/testttt=wwwyyy=see...原创 2020-01-01 22:05:34 · 365 阅读 · 0 评论 -
算法漂流记-员工考勤记录
题目描述给定一个字符串来代表一个员工的考勤纪录,这个纪录仅包含以下两个字符:‘A’ : Absent,缺勤‘P’ : Present,到场如果一个员工的考勤纪录中不超过两个’A’(缺勤),那么这个员工会被奖赏。如果你作为一个员工,想在连续N天的考勤周期中获得奖赏,请问有多少种考勤的组合能够满足要求输入描述:考勤周期的天数N(正整数)输出描述:这N天里能获得奖赏的考勤组合数示例1...原创 2019-12-28 00:20:52 · 379 阅读 · 0 评论 -
算法漂流记-游戏海报
题目描述小明有26种游戏海报,用小写字母"a"到"z"表示。小明会把游戏海报装订成册(可能有重复的海报),册子可以用一个字符串来表示,每个字符就表示对应的海报,例如abcdea。小明现在想做一些“特别版”,然后卖掉。特别版就是会从所有海报(26种)中随机选一张,加入到册子的任意一个位置。那现在小明手里已经有一种海报册子,再插入一张新的海报后,他一共可以组成多少不同的海报册子呢?输入描述:海...原创 2019-12-26 23:38:33 · 134 阅读 · 0 评论 -
算法漂流记-牛牛的字符串分类问题
题目描述牛牛有N个字符串,他想将这些字符串分类,他认为两个字符串A和B属于同一类需要满足以下条件:A中交换任意位置的两个字符,最终可以得到B,交换的次数不限。比如:abc与bca就是同一类字符串。现在牛牛想知道这N个字符串可以分成几类。输入描述:首先输入一个正整数N(1 <= N <= 50),接下来输入N个字符串,每个字符串长度不超过50。输出描述:输出一个整数表示分类...原创 2019-12-26 23:09:49 · 710 阅读 · 0 评论 -
算法漂流记-最小拿球速率
桌子上有N个袋子,每个袋子里有i(i∈[0,10000])个球,输入分钟数M,每分钟只能拿一个袋子里的球,求每分钟最少拿多少球才能在规定的时间内将所有球拿完(当输入错误,输出-1)。输入如下:3 13 5 7 8表示:有4个袋子,每个袋子里的球数分别为3、13、5、7。分钟数为8分钟输出:4#include<stdio.h>#include<stdlib...原创 2019-12-24 23:26:24 · 128 阅读 · 0 评论