OJ
文章平均质量分 96
~无关风月~
手在键盘敲很轻
展开
-
链表相关算法题
从尾到头打印链表https://lovezxm.blog.csdn.net/article/details/80781538链表合并https://leetcode-cn.com/problems/merge-two-sorted-lists/题目描述:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。题解:方法一:递归递归地定义两个链表里的 merge 操作(忽略边界情况,比如空链表等):也就是说,两个链表头部值较小的一个节点与剩下元素的 m原创 2022-05-03 17:35:56 · 199 阅读 · 0 评论 -
种子填充问题
两种连通区域 四连通区域:从区域内一点出发,可通过上、下、左、右四个方向的移动组合,在不越出区域的前提下,能到达区域内的任意像素八连通区域:从区域内每一像素出发,可通过八个方向,即上、下、左、右、左上、右上、左下、右下移动的组合,在不越出区域的前提下,能到达区域内的任意像素。 基本原理从多边形区域内部的某一像素点(称为种子)开始,由此出发找到区域内的其它所有像素。算法的执行...原创 2018-06-06 13:17:18 · 1430 阅读 · 0 评论 -
LeetCode 204. Count Primes 计数质数 (数论)
统计所有小于非负整数 n 的质数的数量。示例:输入: 10 输出: 4 解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。题解:经典的判断素数的解法,只要 不能被 2-N−−√N\sqrt{N} 的所有整数整除就是素数,会超时。class Solution { public int countPrimes(int n) { ...原创 2018-06-20 22:02:29 · 775 阅读 · 0 评论 -
LeetCode 72. Edit Distance 编辑距离(DP)
https://leetcode.com/problems/edit-distance/description/给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:1、插入一个字符 2、删除一个字符 3、替换一个字符示例 1:输入: word1 = “horse”, word2 = “r...原创 2018-06-13 11:54:49 · 188 阅读 · 0 评论 -
算法竞赛入门经典,练习代码 3.4.4重新实现库函数
在学习字符串时,重新实现一些库函数的功能是很有益的。练习1:只用getchar函数读入一个整数。假设它占据单独的一行,读到行末为止,包括换行符。输入保证读入的整数可以保存在int中。#includeint main(){ char a[100]; int i=0,num=0; while((a[i]=getchar())&&a[i]!='\n') {原创 2016-01-14 15:09:11 · 764 阅读 · 0 评论 -
算法竞赛入门经典,练习代码 ,3.4.9 上机练习
习题3-1 分数统计(stat)输入一些学生的分数,哪个分数出现的次数最多?如果有多个并列,从小到大输出。任务1:分数均不超过100的非负整数任务2:分数均不超过100的非负实数,但最多保留两位小数。#include #define MAX=1000int main(){ int a[101]; int x,i; memset(a,0,sizeof(a原创 2016-01-31 10:42:52 · 809 阅读 · 0 评论 -
算法竞赛入门经典,练习代码 ,4.4.1 小问题集锦
编写函数:solve,给定浮点数a,b,c,d,e,f,求解方程组ax+by=c,dx+ey=f任务1:使用assert宏,让解不唯一时异常退出。任务2:解不唯一时仍然正常返回,但调用者有办法知道解的数量(无解、唯一解、无穷多组解)。#include #includetypedef const double db;//常类型的变量或对象的值是不能被更新的void solve(原创 2016-02-02 23:32:16 · 742 阅读 · 0 评论 -
分治递归相关试题
1、求3位数,每位数字可以取1-3的所有可能百位上的数字可以分别求1,2,3,然后问题就变成:求2位数,每位数字可以取1-3的所有可能,所以可以用递归。从百位上的数字开始遍历(1-3),然后递归求解下一位 fun(n-1,x) x 为高位数字的和,在每层运算时,加上本位数字产生的和,第三位为∗102∗102*10^2,第二位为 ∗101∗101*10^1,依次类推 递归退出条件为 n=...原创 2018-06-01 10:43:25 · 963 阅读 · 0 评论 -
CodeM2018赛题
可乐题目描述小美和小团最近沉迷可乐。可供TA们选择的可乐共有k种,比如可口可乐、零度可乐等等,每种可乐会带给小美和小团不同的快乐程度。 TA们一共要买n瓶可乐,每种可乐可以买无限多瓶,小美会随机挑选其中的m瓶喝,剩下的n-m瓶小团喝。 请问应该如何购买可乐,使得小美和小团得到的快乐程度的和的期望值最大? 现在请求出购买可乐的方案。输入第一行三个整数n,m,k分别表示要买...原创 2018-06-10 17:25:22 · 818 阅读 · 0 评论 -
LeetCode 402. Remove K Digits 移掉K位数字(贪心)
给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。注意: num 的长度小于 10002 且 ≥ k。 num 不会包含任何前导零。示例 1 : 输入: num = “1432219”, k = 3 输出: “1219” 解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。示例 2 : 输入: num = “1...原创 2018-06-18 18:05:21 · 2492 阅读 · 0 评论 -
LeetCode 53. Maximum Subarray 最大子序和 (DP)
https://leetcode.com/problems/maximum-subarray/description/给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶: 如果你已经实现...原创 2018-06-19 14:00:07 · 335 阅读 · 0 评论 -
LeetCode 122. Best Time to Buy and Sell Stock II 买卖股票的最佳时机 II(贪心)
https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/description/给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1...原创 2018-06-19 15:46:39 · 208 阅读 · 0 评论 -
LeetCode 55. Jump Game 跳跃游戏(贪心)
https://leetcode.com/problems/jump-game/description/给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。示...原创 2018-06-19 17:08:37 · 1112 阅读 · 0 评论 -
LeetCode 45. Jump Game II 跳跃游戏II,求最少跳跃次数 (贪心)
https://leetcode.com/problems/jump-game-ii/description/给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例: 输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2。 从下标...原创 2018-06-19 20:20:29 · 5059 阅读 · 0 评论 -
牛客2017校招真题在线编程-组合求和
题目描述输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来原创 2018-07-31 22:05:40 · 361 阅读 · 0 评论 -
链表 奇数位升序,偶数位降序,调整使整体升序
头条一道面试题一个链表奇数位上升序,偶数位上降序,不用额外空间让这个链表整体升序1->8->3->6->5->4->7->2->9题解:这道题可以分成三步:首先根据奇数位和偶数位拆分成两个链表。然后对偶数链表进行反转。最后将两个有序链表进行合并。public class Main { public static void ...原创 2018-09-25 11:39:43 · 5228 阅读 · 0 评论 -
LeetCode 322. Coin Change 零钱兑换 (DP)
https://leetcode.com/problems/coin-change/description/给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例 1:输入: coins = [1, 2, 5], amount = 11 输出: 3 解释: 11 = ...原创 2018-06-12 21:42:49 · 1680 阅读 · 0 评论 -
回溯法解决0-1背包问题
问题描述: 有n件物品和一个容量为c的背包。第i件物品的价值是v[i],重量是w[i]。求解将哪些物品装入背包可使价值总和最大。所谓01背包,表示每一个物品只有一个,要么装入,要么不装入。 回溯法: 01背包属于找最优解问题,用回溯法需要构造解的子集树。在搜索状态空间树时,只要左子节点是可一个可行结点,搜索就进入其左子树。对于右子树时,先计算上界函数,以判断是否将其减去,剪枝啦啦! ...原创 2018-06-05 15:59:17 · 4748 阅读 · 0 评论 -
codewars—Ten-Pin Bowling
OJ地址:https://www.codewars.com/kata/ten-pin-bowling/train/java试题的大致意思:投10局保龄球,每局的目标是把10个保龄球都投中 前9局,每局最多能投两个球,如果第一投就10个全中(用‘X’表示),就不用投第二个。每局投球会出现两种情况: Strikes投 用‘X’表示 表示本局的第一投就10球全中。该局的得分是10+后两个原创 2017-05-30 12:01:28 · 781 阅读 · 0 评论 -
codewars—Longest Common Subsequence
题目地址:https://www.codewars.com/kata/longest-common-subsequence/train/java题意:求两个字符串的最大公共序列最长公共子串(Longest CommonSubstring)和最长公共子序列(LongestCommon Subsequence, LCS)的区别:子串(Substring)是串的一个连续的部分,子序列(Subse...原创 2017-06-01 22:27:29 · 474 阅读 · 0 评论 -
用1、2、2、3、4、5这六个数字,打印出所有不同的排列
转换成整型值,用累加的方法遍历从最小到最大的所有数值,输出包含指定字符及其指定个数的数字。 由于要遍历更多的数字,所以耗时较大。public class Main { public static int count = 0; private static String[] mustExistNumber=new String[]{"1","2","2","3","4",".原创 2017-07-03 20:46:55 · 8070 阅读 · 1 评论 -
java 常用模板函数
求所有子序列字符串:public class Main { public static void main(String[] args) { List<String> strs=getAllSubstrings("abbc",""); System.out.println(strs); } private static...原创 2018-04-11 10:25:11 · 5606 阅读 · 0 评论 -
Tencent笔试
常用开源协议对商业应用友好性比较 BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对 商业集成很友好的协议。Apache Licence 和BSD类似,对商业应用友好的许可MIT是和BSD一样宽范的许可协议GPL,严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就...原创 2018-04-14 10:01:06 · 403 阅读 · 0 评论 -
JD笔试
疯狂数列 题目描述: 东东从京京那里了解到有一个无现长的数字序列:1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,…(数字k在该序列正好出现k次)。东东想知道这个数字序列的第n项是多少,你能帮帮他么输入描述: 输入包括一个整数n(1<=n<=10^18)输出描述: 输出一个整数,即数字序列的第n项,注意long long示例1 输入 169...原创 2018-04-11 09:14:59 · 357 阅读 · 0 评论 -
去哪儿面试
重复数字个数倍的字符串public class Main { public static void main(String[] args) { String str = "ab11s3dc1"; String s = fun(str); System.out.println(s);//abababababababababababsssd...原创 2018-03-13 10:11:44 · 282 阅读 · 0 评论 -
给一个字符串数组,判断其能否组成首尾相连的数组
public class Main { public static String x=null; public static void main(String args[]) {// String [] str = {"gwj","jcl","dlg","akd","qag"}; String [] str = {"gj","jl","dg","ad"原创 2018-04-19 16:50:33 · 3182 阅读 · 0 评论 -
Aiqyi 笔试
一、求字典序最大的子序列 给出一个字符串(都为小写字母),求字典序最 大的子序列 如: 输入: test 输出: tt输入: asdfghj 输出: sj字典序:就是按照字典里的排序方法,先比较第一个字符,a < b< z,如果相同再比较第二个字符,依次类推方法一: 先遍历一遍找到字典序最大的字符,保存字符,并记录该字符位置,然后遍历该位置后面的所有字...原创 2018-04-20 16:23:09 · 8820 阅读 · 0 评论 -
LeetCode-155.Min Stack
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 (整数)x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。实例:MinStack minStack = new MinStack();minStack.push(-2);minStack.pu...原创 2018-05-17 16:01:21 · 255 阅读 · 0 评论 -
LeetCode-128. Longest Consecutive Sequence
给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例: 输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。分析: 要求时间复杂度为 O(n) 如果先 Arrays.sort(nums) 排序, 时间复杂度取决于 排序的时间复杂度 ,一般为O(n...原创 2018-05-17 18:35:58 · 182 阅读 · 0 评论 -
二叉树相关试题
LeetCode 236. Lowest Common Ancestor of a Binary Tree给定一棵二叉树,找到两个节点的最近公共父节点(LCA)。最近公共祖先是两个节点的公共的祖先节点且具有最大深度。对于下面这棵二叉树 4 / \3 7 / \ 5 6LCA(3, 5) = 4 LCA(5, 6) = 7 LCA(6, 7) = 7...原创 2018-05-21 20:41:02 · 376 阅读 · 0 评论 -
LeetCode-394. Decode String
https://leetcode.com/problems/decode-string/description/重复 括号前数字个数 构成字符串:例如:s = "3[a]2[bc]", return "aaabcbc".s = "3[a2[c]]", return "accaccacc".s = "2[abc]3[cd]ef&原创 2018-05-15 17:42:42 · 222 阅读 · 0 评论 -
LeetCode-207. Course Schedule
https://leetcode.com/problems/course-schedule/description/ https://leetcode-cn.com/problems/course-schedule/description/现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个...原创 2018-05-26 22:09:37 · 2478 阅读 · 0 评论 -
lintcode-104. Merge K Sorted Lists
描述合并k个排序链表,并且返回合并后的排序链表。尝试分析和描述其复杂度。样例给出3个排序链表 [2-&gt;4-&gt;null,null,-1-&gt;null],返回 -1-&gt;2-&gt;4-&gt;null链表结构:class ListNode { int val; ListNode next; ListNode(int val) { ...原创 2018-05-23 21:17:45 · 282 阅读 · 0 评论 -
16某邮智能信息中心预面试机试题
#include<stdio.h>#include<algorithm>#include <string.h>using namespace std;int main(){ int n,i,j; scanf("%d",&n); while(n--) { char a[1000],b[1000]; scanf("%s %s",a,...原创 2016-06-13 11:10:08 · 802 阅读 · 0 评论