2022-3-24 剑指offer day41

题1:

JZ14 剪绳子

描述

给你一根长度为 n 的绳子,请把绳子剪成整数长的 m 段( m 、 n 都是整数, n > 1 并且 m > 1 , m <= n ),每段绳子的长度记为 k[1],...,k[m] 。请问 k[1]*k[2]*...*k[m] 可能的最大乘积是多少?例如,当绳子的长度是 8 时,我们把它剪成长度分别为 2、3、3 的三段,此时得到的最大乘积是 18 。
 
数据范围: 2 \le n \le 602n60
进阶:空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n)

输入描述:

输入一个数n,意义见题面。

返回值描述:

输出答案。
 
 1 public class Solution {
 2     public int cutRope(int target) {
 3         int max=0;
 4         for (int i=2;i<=target;i++){
 5             int k=0,left=0;
 6             if (target%i==0) k=target/i;
 7             else {
 8                 k=target/i+1;
 9                
10                 if (k*(i-1)>=target){
11                     k=target/i;
12                     
13                 } 
14                 left=target-k*(i-1);
15             }
16             int s=1;
17             for (int j=0;j<i-1;j++) s*=k;
18             if (left!=0) s*=left; else s*=k;
19             max=Math.max(max,s);
20             
21         }
22         return max;
23     }
24 }

思路:贪心。每一段越接近 越大。

 

 

题2:

JZ81 调整数组顺序使奇数位于偶数前面(二)

 

描述

输入一个长度为 n 整数数组,数组里面可能含有相同的元素,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前面部分,所有的偶数位于数组的后面部分,对奇数和奇数,偶数和偶数之间的相对位置不做要求,但是时间复杂度和空间复杂度必须如下要求。
 
数据范围:0 \le n \le 500000n50000,数组中每个数的值 0 \le val \le 100000val10000
要求:时间复杂度 O(n)O(n),空间复杂度 O(1)O(1)
 1 import java.util.*;
 2 
 3 
 4 public class Solution {
 5     /**
 6      * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 7      *
 8      * 
 9      * @param array int整型一维数组 
10      * @return int整型一维数组
11      */
12     public int[] reOrderArrayTwo (int[] array) {
13         // write code here
14         int l=0,r=array.length-1,n=array.length;
15         while (l<r) {
16             while (l<n&&array[l]%2==1) l++;
17             while (r>=0&&array[r]%2==0) r--;
18             if (l<r){
19             int temp=array[l];
20             array[l]=array[r];
21             array[r]=temp;
22             l++;
23             r--;
24             }
25 
26         }
27         return array;
28     }
29 }

思路:双指针 原地交换

posted on 2022-03-24 15:52  阿ming  阅读(23)  评论(0)    收藏  举报

导航