当前位置: 首页 > news >正文

手机网站怎么做公司logo设计公司logo设计

手机网站怎么做,公司logo设计公司logo设计,招商网站开发,南京哪家做电商网站67、 用Rand7()实现Rand10() 算法的尽头是数学.... 已知 rand_N() 可以等概率的生成[1, N]范围的随机数 那么: (rand_X() - 1) Y rand_Y() > 可以等概率的生成[1, X * Y]范围的随机数 即实现了 rand_XY() 这就是该题的公式 class Solution extends SolBase …

67、 用Rand7()实现Rand10()

算法的尽头是数学....

已知 rand_N() 可以等概率的生成[1, N]范围的随机数
那么:
(rand_X() - 1) × Y + rand_Y() ==> 可以等概率的生成[1, X * Y]范围的随机数
即实现了 rand_XY()

这就是该题的公式

class Solution extends SolBase {public int rand10() {while(true) {int num = (rand7() - 1) * 7 + rand7(); // 等概率生成[1,49]范围的随机数if(num <= 40) return num % 10 + 1; // 拒绝采样,并返回[1,10]范围的随机数}}
}

优化版本

/*** The rand7() API is already defined in the parent class SolBase.* public int rand7();* @return a random integer in the range 1 to 7*/
class Solution extends SolBase {public int rand10() {while (true){int num = (rand7() - 1) * 7 + rand7();// 如果在40以内,那就直接返回if(num <= 40) return 1 + num % 10;// 说明刚才生成的在41-49之间,利用随机数再操作一遍num = (num - 40 - 1) * 7 + rand7();if(num <= 60) return 1 + num % 10;// 说明刚才生成的在61-63之间,利用随机数再操作一遍num = (num - 60 - 1) * 7 + rand7();if(num <= 20) return 1 + num % 10;}}
}

68、验证二叉搜索数

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public boolean isValidBST(TreeNode root) {return isvalidhelper(root,Long.MIN_VALUE,Long.MAX_VALUE);}public boolean isvalidhelper(TreeNode node,long lower,long uppper){if(node==null){return true ;}if(node.val<=lower||node.val>=uppper){return false;}boolean left=isvalidhelper(node.left,lower,node.val);boolean right=isvalidhelper(node.right,node.val,uppper);return left&&right;}
}

简单递归题

69、最大正方形

class Solution {public int maximalSquare(char[][] matrix) {int max = 0;int n = matrix.length;int m = matrix[0].length;int[][] dp = new int[n][m];for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (matrix[i][j] == '1') {if (i == 0 || j == 0) {dp[i][j] = 1;} else {dp[i][j] = Math.min(dp[i - 1][j], Math.min(dp[i - 1][j - 1], dp[i][j - 1])) + 1;}}max = Math.max(max, dp[i][j]);}}return max * max;}
}

该题可以用前缀和,二进制运算,动态规划来做

该题的dp定义为以该位置为正方形的右下角能形成的最大正方形的边长

走到i,j位置只需要考虑,该位置左边,上边,斜上边的最小值+1就是边长,每次遍历记录max值,

面积为边长*边长

70、在排序数组中查找元素的第一个和最后一个位置

class Solution {public int[] searchRange(int[] nums, int target) {int[] result={-1,-1};int first=findFirst(nums,target);if(first==-1){return result;}int last=findLast(nums,target);result[0]=first;result[1]=last;return result;}private int findFirst(int []nums,int target){int left=0;int right=nums.length-1;int result=-1;while(left<=right){int mid=left+(right-left)/2;if(nums[mid]==target){result=mid;right=mid-1;//收缩右边界}else if(nums[mid]<target){left=mid+1;}else{right=mid-1;}}return result;}private int findLast(int[] nums,int target){int left=0;int right=nums.length-1;int result=-1;while(left<=right){int mid=left+(right-left)/2;if(nums[mid]==target){result=mid;left=mid+1;//收缩左边界}else if(nums[mid]<target){left=mid+1;}else{right=mid-1;}}return result;}
}

题中要求用logn解决就知道是用二分,但是掌握左右边界很难

71、字符串解码

class Solution {public String decodeString(String s) {StringBuilder res=new StringBuilder();int multi=0; LinkedList<Integer> stack_multi=new LinkedList<>();LinkedList<String> stack_res=new LinkedList<>();for(Character c:s.toCharArray()){if(c=='['){stack_multi.addLast(multi);stack_res.addLast(res.toString());multi=0;res=new StringBuilder();}else if(c==']'){StringBuilder temp=new StringBuilder();int cur_multi=stack_multi.removeLast();for(int i=0;i<cur_multi;i++)temp.append(res);res=new StringBuilder(stack_res.removeLast()+temp);}else if(c>='0'&&c<='9') multi=multi*10+Integer.parseInt(c+"");else res.append(c);}return res.toString();}
}

使用辅助栈模拟,如3[a2[c]b]-> 3[accb] ->accbaccbaccb

72、搜索二维矩阵||

class Solution {public boolean searchMatrix(int[][] matrix, int target) {if(matrix==null||matrix.length==0)return false;int m=0;int n=matrix[0].length-1;//m为行,n为列while(m<matrix.length&&n>=0){if(matrix[m][n]==target){return true;}else if(matrix[m][n]>target){n--;}else{m++;}}return false;}
}

从右上角开始查找,target大于该值,就往下一行该列找,否则就在该行往左边找

http://www.dtcms.com/a/493384.html

相关文章:

  • 网站建设用那个软件五种常用的网站推广方法
  • 中山网站建设是什么小学生课程同步做网站软件
  • 网上商店也叫做seo两个域名一个网站有影响
  • 企业网站和展板建设重庆seo关键词优化服务
  • 如何判断网站是竞价站广东省建设安全管理协会网站
  • 怎么注册网站域名一般网站建设需求有哪些
  • 如何建立一个网站主页建设企业网站公司价格
  • 网站前期策划天元建设集团有限公司招聘2022
  • 专业网站设计模板常见的网站空间服务商
  • 集团公司做网站简历制作专业机构
  • 简述网站建设与维护泉州专业网站建设费用
  • 十堰微网站建设深圳安全教育平台
  • 怀柔高端网站建设wordpress 值班功能
  • 手机wap网站用什么语言开发网络营销的机遇和挑战
  • 网站备案收费wordpress cms 中文
  • 即墨网站建设哪里有乐清招聘网
  • 网站鼠标经过图片代码人脉推广app
  • 上海设计网站方法做营销的网站建设
  • 建设教育工程网站天津网站营销
  • 网站建站报价单wikidot怎么建设网站
  • 建设工程知识类网站深圳市羽堂品牌设计顾问有限公司
  • 网站建设课程设计内容佛山北京网站建设
  • 织梦网站怎么做新闻导航页赣州网站建设江西网站建设
  • 怎样做软件网站建设网络营销分析报告
  • 求一个自己做的网站链接网站mssql 导出数据
  • 人人网站建设方案书大淘客做网站
  • 上海移动端网站建设四网一体网站建设方案
  • 沈阳市建设工程安全监督站网站有域名如何建网站
  • 网站ipv6改造怎么做 网页代码刚刚地震最新消息今天
  • 网站显示内容不显示wordpress 支持 标签