对于N阶幻方,从1开始把数字从小到大按以下规则依次写入: 一.在第一行中间一列写入1 二.依次向右上方写入2.3.4...... 三.如果某数字写在了表格的某个方向外面,那就把这个数字向相反方向移动N个单位,把它放入表格内部.例如,某数字 写在了表格的上方,那就把这个数字向下移动N个单位. 四.如果某个数字的右上方已经被占用,那就把下一个数字写在这个数字的正下方. 五.如果某个数字位于表格的最右上角,那么下一个数字要写在这个数字的正下方(例子中16的写法) 1 #include<iostream…
Level:   Medium 题目描述: Given a string, find the length of the longest substring without repeating characters. Example 1: Input: "abcabcbb" Output: 3 Explanation: The answer is "abc", with the length of 3. Example 2: Input: "bbbbb&q…
2021.05.03 T3 数字 问题描述 一个数字被称为好数字当他满足下列条件: 1. 它有**2*n**个数位,n是正整数(允许有前导0) 2. 构成它的每个数字都在给定的数字集合S中. 3. 它**前n位之和与后n位之和相等**或者它**奇数位之和与偶数位之和相等** 例如对于n=2,S={1,2},合法的好数字有1111,1122,1212,1221,2112,2121,2211,2222这样8种. 已知n,求合法的好数字的个数mod 999983. 输入 第一行一个数n. 接下来一个长…
题目:给定一个函数rand()能产生1到n之间的等概率随机数,问如何产生1到m之间等概率的随机数? 先把问题特殊化,例如原题变为给定一个函数rand5(),该函数可以随机生成1-5的整数,且生成概率一样.现要求使用该函数构造函数rand7(),使函数rand7()可以随机等概率的生成1-7的整数. 很多人的第一反应是利用rand5() + rand()%3来实现rand7()函数,这个方法确实可以产生1-7之间的随机数,但是仔细想想可以发现数字生成的概率是不相等的.rand()%3 产生0的概率…
[来源]:腾讯2013实习生笔试   给定一个数组a[N],我们希望构造数组b [N],其中b[j]=a[0]*a[1]-a[N-1] / a[j])空间复杂度和O(n)的时间复杂度:除遍历计数器与a[N] b[N]外,不可使用新的变量(包括栈临时变量.堆空间和全局静态变量等) 解析:设b[0]=1 由b[i]=b[i-1]*a[i-1]可得 b[1] = a[0] b[2] = a[0]a[1] - b[i] = a[0]a[1]a[2]-a[i-1] - b[n-1] = a[0]a[1]-…
Javaweb Dao层: //连接数据库,实现增查功能 package dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import model.Model; public class Dao { //URL是用来表示互联网上的某个资…
2021.05.14 tarjan 标准版tarjan 这里使用数组来模拟栈 void tarjan(int x){ ++ind; dfn[x]=low[x]=ind; stacki[++top]=x; instack[x]=true; for(int i=head[x];i;i=a[i].next ){ int v=a[i].to ; if(dfn[v]==0){ tarjan(v); low[x]=min(low[x],low[v]); }else if(instack[v]){ low[x…
2021.07.19 P2294 狡猾的商人(差分约束) [P2294 HNOI2005]狡猾的商人 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.差分约束最长路与最短路 题意: 给出每个时间段具体账单,分析是否矛盾. 分析: 把每段时间起始时间前挪一个月,把相邻时间段连成连续的时间段,建正向边.如果只建正向边,对于开头是未知账单的来说,没法进行约束,因此建反向边.我们只需要知道所有边是否符合规矩,而不是某个具体的最大值或最小值,所以跑最长路或最短路都可以(亲自试…
分析,是一个dp的题目, 设f[i]表示以i为结尾的最大值,g[i]表示以i结尾的最小值,那么 f[i+1] = max{f[i]*arr[i+1], g[i]*arr[i+1],arr[i+1]} ,只有这三种情况. 考虑到f[i],g[i]只和i-1有关,那么可以用局部变量即可搞定,而不用使用数组. 1 import java.lang.Math; public class Solution { public double maxProduct(double[] arr) { double…
第五题 (Map)设计Account 对象如下: private long id; private double balance; private String password; 要求完善设计,使得该Account 对象能够自动分配id. 给定一个List 如下: List list = new ArrayList(); list.add(new Account(10.00, “1234”)); list.add(new Account(15.00, “5678”)); list.add(ne…