- 博客(19)
- 资源 (6)
- 收藏
- 关注
原创 剑指Offer-71不用加减乘除做加法
public int add(int a, int b) { // 当进位为 0 时跳出 while(b != 0) { // c = 进位 int c = (a & b) << 1; // a = 非进位和 a ^= b; // b = 进位 b = c; } return a;}
2021-03-25 13:33:46 71
原创 剑指Offer-70求1+2+…+n
int res = 0;public int sumNums(int n) { // 当 n = 1 时 n > 1 不成立 ,此时短路,终止后续递归 boolean x = n > 1 && sumNums(n - 1) > 0; res += n; return res;}
2021-03-25 13:10:43 78
原创 剑指Offer-69股票的最大利润
public int maxProfit(int[] prices) { // 买不了就0 int res = 0; for (int i = 0; i < prices.length; i++){ for (int j = i + 1; j < prices.length; j++){ // 遍历找到最大利润 res = Math.max(res, prices[j] - prices[i]); .
2021-03-23 18:30:37 79
原创 剑指Offer-68圆圈中最后剩下的数字
public int lastRemaining(int n, int m) { // 把这个0 ~ n-1存起来 List<Integer> list = new ArrayList<>(); for (int i = 0; i < n; i++){ list.add(i); } int delete = 0; // 循环直到list中只剩一个 while (list.size() > 1){ .
2021-03-23 17:19:17 99
原创 剑指Offer-67扑克牌中的顺子
public boolean isStraight(int[] nums) { Set<Integer> repeat = new HashSet<>(); int max = 0, min = 14; for(int num : nums) { // 跳过大小王 不用考虑有几个大小王 因为不重复且最大-最小<5是形成顺子必然事件 if(num == 0) { continue; .
2021-03-23 16:32:43 103
原创 广东联通光猫wo-27s华为HG8321R超级密码
联通光猫有两个LAN口,一个千兆,一个百兆,没有IPTV又不想浪费一个LAN口的可以到管理员端改设置!管理地址:http://192.168.1.1/cu.html管理员账号:CUAdmin广东联通华为光猫统一超级密码(测试WO-27S可以使用):cuadmin00259e如果以上账号不能登录的就试试这个管理员账号:CUAdmin管理员密码:cuadmin + 光猫后面标签的MAC地址前6位(有大写字母就改成小写)仅限广东部分地区,具体自行测试...
2021-03-19 02:47:36 36025 5
原创 剑指Offer66-n个骰子的点数
public double[] dicesProbability(int n) { // 初始化一个筛子 double[] dp = new double[6]; // 初始化数组全是六分之一 Arrays.fill(dp, 1.0 / 6.0); for (int i = 2; i <= n; i++) { // 创建临时结果集 double[] tmp = new double[5 * i + 1]; for.
2021-03-16 17:56:52 92
原创 剑指Offer-65队列的最大值
// 存储队列Queue<Integer> queue;// 单调双向队列Deque<Integer> deque;public MaxQueue() { queue = new LinkedList<>(); deque = new LinkedList<>();}public int max_value() { // 空返回-1 非空返回队头 return deque.isEmpty() ? -1 : de.
2021-03-10 13:53:26 72
原创 剑指Offer-64滑动窗口的最大值
public int[] maxSlidingWindow(int[] nums, int k) { // 数组为空 直接返回空数组 if(nums.length == 0 || k == 0) { return new int[0]; } // 返回的结果 int res[] = new int[nums.length - k + 1]; // 左边界 int j = 0; // k为右边界 超出nums.length为出口.
2021-03-09 18:20:34 78
原创 剑指Offer-63左旋转字符串
public String reverseLeftWords(String s, int n) { // 重新拼接字符串 n - s.length() 加上 0 - n return s.substring(n) + s.substring(0, n);}
2021-03-08 14:50:55 88
原创 剑指Offer-62翻转单词顺序
public String reverseWords(String s) { // 不考虑线程安全 StringBuilder性能更好 StringBuilder stringBuilder = new StringBuilder(); // 并且空格分割成数组 String[] strings = s.split(" "); for (int i = strings.length - 1; i >= 0; i--){ // 遇到连续空格 直接.
2021-03-05 13:43:43 71
原创 剑指Offer-61和为s的连续正数序列
public int[][] findContinuousSequence(int target) { // 滑动窗口 int i = 1; int j = 2; int sum = 3; List<int[]> res = new ArrayList<>(); // i,j相遇即为出口 while(i < j) { // 小于时 j往后走 并把j加上 if(sum < target.
2021-03-04 13:48:54 108 1
原创 剑指Offer-60和为s的两个数字
public int[] twoSum(int[] nums, int target) { // 双指针 int i = 0; int j = nums.length - 1; // i,j相遇是出口 while(i < j) { int sum = nums[i] + nums[j]; // 递增序列 和小i++ if(sum < target) { i++; .
2021-03-03 22:21:16 83 2
原创 剑指Offer-59数组中数字出现的次数 II
public int singleNumber(int[] nums) { HashMap<Integer, Boolean> hashMap = new HashMap<>(); // 遍历将出现一次的数字value置为true,出现多次的value置为false for (int num : nums){ if (hashMap.get(num) == null){ hashMap.put(num, true);.
2021-03-02 15:25:32 99
原创 剑指Offer-58数组中数字出现的次数
public int[] singleNumbers(int[] nums) { int x = 0, y = 0, n = 0, m = 1; // 遍历异或 for(int num : nums) { n ^= num; } // 循环左移,计算 m while((n & m) == 0) { m <<= 1; } // 遍历 nums 分组 for(int num: nums).
2021-03-02 14:44:35 77
原创 剑指Offer-57平衡二叉树
public boolean isBalanced(TreeNode root) { return recur(root) != -1;}public int recur(TreeNode root) { // 后续遍历 if (root == null) { return 0; } int left = recur(root.left); if(left == -1) { return -1; } in.
2021-03-01 13:40:27 62
原创 剑指Offer-56二叉树的深度
public int maxDepth(TreeNode root) { // 后序遍历 if (root == null){ return 0; } // 此树的深度等于左子树的深度与右子树的深度中的最大值 +1 return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;}...
2021-03-01 11:44:39 79
原创 剑指Offer-55二叉搜索树的第k大节点
int res;int k;public int kthLargest(TreeNode root, int k) { this.k = k; dfs(root); return res;}public void dfs(TreeNode node){ // 以右 -> 根 -> 左的方式遍历树 即可得到倒序 方便查找第k大节点 if (node == null){ return; } dfs(node.righ.
2021-03-01 10:20:42 61
原创 剑指Offer-54 0~n-1中缺失的数字
public int missingNumber(int[] nums) { int i = 0; int j = nums.length - 1; while(i <= j) { // 二分查找 int m = (i + j) / 2; // 如果相等 证明前面没有缺失 则取 m + 1 ~ j if(nums[m] == m) { i = m + 1; // 否.
2021-03-01 09:53:22 79
android即时通讯IM基于环信SDK.zip
2020-07-15
考勤管理系统 数据结构 C语言
2020-07-15
雷电游戏java.zip
2020-07-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人