![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字节
云养猫v2
这个作者很懒,什么都没留下…
展开
-
中文数字转阿拉伯数字 数字转换
https://www.d5.nz/read/sfdlq/text-part0000_split_030.html Map<Character, Integer> chnUnitMap = new HashMap<>(); Map<Character, Integer> chnNumMap = new HashMap<>(); int[] value = {10, 100, 1000, 10000, 100000000}; bool原创 2021-01-17 16:26:22 · 577 阅读 · 0 评论 -
阿拉伯数字转中文数字 数字转换
https://www.d5.nz/read/sfdlq/text-part0000_split_029.html private char[] chnNumChar = {'零', '一', '二', '三', '四', '五', '六', '七', '八', '九'}; private String[] chnUnitSection = { "", "万", "亿", "万亿"}; private String[] chnUnitChar = { "", "十", "百", "千原创 2021-01-17 14:38:31 · 805 阅读 · 0 评论 -
合并k个有序数组
// 1,基于排序申请数组,在数组内进行排序// 2, 基于归并// 感觉空间复杂度太大public int[] mergeArrays(List<int[]> arrays) { if (arrays == null || arrays.size() == 0) return new int[0]; return mergeArrays(arrays, 0, arrays.size()-1); } private i原创 2021-01-16 15:02:37 · 440 阅读 · 0 评论 -
毒蘑菇
作者:克拉克华链接:https://www.nowcoder.com/discuss/507047?type=all&order=time&pos=&page=1&channel=-1&source_id=search_all_nctrack来源:牛客网从起点开始接下来有N个方块,相邻方块间的距离都为1,每个方块上有增加体力的食用蘑菇或减少体力的毒蘑菇,蘑菇带来的体力改变是已知的。一个人初始体力为m,每次可以往前跳任意个方块,体力耗尽就会死掉。每跳一次消耗的体力原创 2021-01-15 10:40:17 · 1493 阅读 · 4 评论 -
给定数组,每个元素代表一个木头的长度,木头可以任意截断, 从这堆木头中截出至少k个相同长度为m的木块,已知k,求max(m)
给定数组,每个元素代表一个木头的长度,木头可以任意截断,从这堆木头中截出至少k个相同长度为m的木块,已知k,求max(m)[9, 4, 3, 10, 7] k = 5 max(m) = ? public int maxM(int[] nums, int k) { int min = Integer.MAX_VALUE; int max = Integer.MIN_VALUE; for (int i = 0; i < nums.len原创 2020-09-04 09:19:33 · 939 阅读 · 0 评论 -
给一个升序数组,找出两个数字相加等于 target 的个数。
int[] nums = {1,2,2,3,3,3,3,4,4,5,5} target = 6 res = 12public int twoSum(int[] nums, int target) { int n = nums.length; if (n <= 0) return 0; int count = 0; for (int lo = 0, hi = n-1; lo < hi;) { if原创 2020-08-30 16:04:55 · 321 阅读 · 0 评论 -
二叉树,根据中序与先序数组,求后序遍历的数组 不建树的情况下
public int[] findOrder(int[] pre, int[] in) { int n = pre.length; int[] post = new int[n]; findOrderSub(pre, 0, n-1, in, 0, n-1, post, 0, n-1); return post; } private void findOrderSub(int[] pre, int preLo, int pr原创 2020-08-26 17:03:45 · 257 阅读 · 0 评论 -
将一个数 删除k位数字之后 的最大\最小值
https://www.cnblogs.com/-citywall123/p/11226501.html题意:给出一个长度最大为n位的数字,求从中剔除掉k个数字后得到到最大数和最小数。题解:若是找最小数,那么维持原来的数字单调递增,若递减,则把前面的数字删去直到递增,遍历一遍后如果没删够,则从后面删。若是找最大数,那么维持原来的数字单调递减,若递增,则把前面的数字删去直到递减,便利一遍后如果每删够,则从后面删。public String removeKGetMax(String str,原创 2020-08-17 23:37:52 · 1166 阅读 · 0 评论 -
数组找右边第一个比它大的数 没有输出-1
public int[] findMax(int[] nums) { int n = nums.length; int[] res = new int[n]; Deque<Integer> stack = new ArrayDeque<>(); for (int i = 0; i < n; i++) { while (!stack.isEmpty() && nums[i] &原创 2020-08-17 17:09:15 · 144 阅读 · 0 评论 -
放苹果(把 M 个同样的苹果放在 N 个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?
令f(m,n)表示m个苹果放到n个盘子里有多少种放法,下面分类讨论:m<n时,至少有n-m个盘子空着(这些空盘子并不影响最后的结果,因为每种方法都带有着些空盘子)。只考虑m个苹果放m个盘子 f(m,n)=f(m,m)m>n时,按是否有空盘子 分2种情况:a.假设至少一个盘子空着,相当于f(m,n)=f(m,n-1)b.所有的盘子都有苹果,假设每个盘子可以先放一个,问题就变成:m-n个苹果放到n个盘子,即f(m,n)=f(m-n,n) 总的放法为二者之和, f(m,n)=原创 2020-08-16 16:10:36 · 5864 阅读 · 0 评论 -
先递增后递减数组找第一个出现的目标数字
先找出最大值的第一个下标再分两次 二分找的是第一次出现的下标public int findFirstOne(int[] nums, int target) { if (nums.length == 0) return -1; int n = nums.length; int maxNumIndex = findMaxNumIndex(nums); int idx1 = findTargetAsce.原创 2020-08-15 10:20:32 · 446 阅读 · 0 评论 -
rand3()求rand5()
rand3() [1,3] rand5[1,5]public int rand5() { int row = rand3(); do { int idx = (rand3() - 1) * 5; } while (idx >= 10); return idx % 5 + 1;}原创 2020-08-14 16:41:39 · 1457 阅读 · 0 评论 -
找出一个数组中全部符合条件的数,这个数大于它前面的全部数,小于后面的全部数。要求时间空间不能超过O(N)。
https://blog.csdn.net/beiyeqingteng/article/details/7167823?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.chan转载 2020-08-06 21:37:11 · 590 阅读 · 0 评论 -
数组先升序再降序(含重复元素) 用二分法求最大值
一个数组先升序再降序,用最优时间复杂度,求最大值?例如[1,2,2,2,2,3,1]public int getMax(int[] arr) { if (arr.length < 2) return arr[0]; int lo = 0, hi = arr.length - 1; while (lo < hi) { int mid = lo + (hi - lo) / 2; if (arr[mid原创 2020-08-06 20:56:45 · 1795 阅读 · 0 评论 -
有序数组元素不同平方值个数
给你一个有序整数数组,数组中的数可以是正数、负数、零,请实现一个函数,这个函数返回一个整数:返回这个数组所有数的平方值中有多少种不同的取值。举例:nums = {-1,1,1,1},那么你应该返回的是:1。因为这个数组所有数的平方取值都是1,只有一种取值nums = {-1,0,1,2,3}你应该返回4,因为nums数组所有元素的平方值一共4种取值:1,0,4,9public int count(int[] nums) { if (nums.length < 2) retur原创 2020-08-05 16:14:36 · 439 阅读 · 1 评论