Arranging Coins 排列硬币

你总共有 枚硬币,你需要将它们摆成一个阶梯形状,第 行就必须正好有 枚硬币。

给定一个数字 n,找出可形成完整阶梯行的总行数。

是一个非负整数,并且在32位有符号整型的范围内。

示例 1:

n = 5

硬币可排列成以下几行:
¤
¤ ¤
¤ ¤

因为第三行不完整,所以返回2.

示例 2:

n = 8

硬币可排列成以下几行:
¤
¤ ¤
¤ ¤ ¤
¤ ¤

因为第四行不完整,所以返回3.

思路:

两种方法,顺序查找法(O(n))和二分查找法(O(logn)),题目给的序列是首项为1的公差为1的等差数列,前n项求和公式为:

sum(n)=n*(n+1)/2

顺序查找法代码:

    long long cal(long long c) {
	return (1 + c)*c / 2;
}
int arrangeCoinsCore(int n, int start, int end) {
	if (cal(end) <= n) {
		return end;
	}
	if (cal(start) > n) {
		return start - 1;
	}
	if (cal(start) == n) {
		return start;
	}
	int mid = start + (end - start) / 2;
	if (cal(mid) == n) {
		return mid;
	}
	if (cal(mid) > n) {
		return arrangeCoinsCore(n, start, mid - 1);
	}
	else {
		return arrangeCoinsCore(n, mid + 1, end);
	}
}
int arrangeCoins(int n) {
	if (n < 0) {
		return 0;
	}
	return arrangeCoinsCore(n, 1, n);
}

二分查找法:

    int arrangeCoins(int n) {
        int i=1;
        while(n>=i){
            n-=i;
            i++;
        }
        return i-1;
    }




你总共有 枚硬币,你需要将它们摆成一个阶梯形状,第 行就必须正好有 枚硬币。

给定一个数字 n,找出可形成完整阶梯行的总行数。

是一个非负整数,并且在32位有符号整型的范围内。

示例 1:

n = 5

硬币可排列成以下几行:
¤
¤ ¤
¤ ¤

因为第三行不完整,所以返回2.

示例 2:

n = 8

硬币可排列成以下几行:
¤
¤ ¤
¤ ¤ ¤
¤ ¤

因为第四行不完整,所以返回3.
### Overleaf 中 LaTeX 的图片排列方法 在 Overleaf 中使用 LaTeX 排列图片可以通过多种方式实现,这些方法包括 `minipage`、`subfigure` 和 `tabular` 等工具[^2]。以下是几种常见的图片排列技术及其具体实现: #### 使用 Minipage 进行图片排列 `minipage` 是一种灵活的方式来控制多个图像的位置和大小。通过创建独立的小页面区域,可以精确调整每张图片的宽度和其他属性。 ```latex \documentclass{article} \usepackage[demo]{graphicx} \begin{document} \noindent \begin{minipage}{0.45\textwidth} \centering \includegraphics[width=\linewidth]{image1.png} \captionof{figure}{First image caption.} \label{fig:image1} \end{minipage}% \hfill \begin{minipage}{0.45\textwidth} \centering \includegraphics[width=\linewidth]{image2.png} \captionof{figure}{Second image caption.} \label{fig:image2} \end{minipage} \end{document} ``` 上述代码展示了如何利用两个并排的 `minipage` 来放置两张图片,并分别给它们加上标题。 #### 使用 Subfigure 实现子图功能 如果需要在同一图形环境中显示多幅子图,则推荐使用 `subfigure` 宏包。这种方法特别适合于标注清晰的子图编号以及共享同一主标题的情况。 首先需加载必要的宏包: ```latex \usepackage{subcaption} ``` 接着定义包含若干子图的大图表环境如下所示: ```latex \begin{figure}[htbp] \centering \begin{subfigure}[b]{0.45\textwidth} \includegraphics[width=\textwidth]{example-image-a} \caption{Sub-figure A}\label{fig:subfigA} \end{subfigure} ~ %add desired spacing between images, e.g., ~ (a small space), \quad (wider), or \qquad (larger). \begin{subfigure}[b]{0.45\textwidth} \includegraphics[width=\textwidth]{example-image-b} \caption{Sub-figure B}\label{fig:subfigB} \end{subfigure} \vskip\baselineskip \begin{subfigure}[b]{0.45\textwidth} \includegraphics[width=\textwidth]{example-image-c} \caption{Sub-figure C}\label{fig:subfigC} \end{subfigure} \caption{Overall figure description with multiple subfigures.} \label{fig:overallFigureLabel} \end{figure} ``` 此段落说明了怎样借助 `subfigure` 构建复杂的布局结构来管理各个部分之间的关系。 #### Tabular 方法用于表格形式展示 对于某些特定需求而言,也可以考虑采用 `tabular` 表格的形式安排视觉素材位置。这种方式尤其适用于那些希望模仿传统电子表格外观的应用场景。 下面是一个简单的例子演示如何构建两栏三行式的照片陈列效果: ```latex \begin{table}[!htp] \centering \renewcommand{\arraystretch}{1.5}% Adjust row height as needed. \setlength\tabcolsep{6pt}% Control column separation distance here. \begin{tabular}{cc} \includegraphics[scale=0.3]{pic1.jpg}& \includegraphics[scale=0.3]{pic2.jpg}\\ Picture One & Picture Two \\ \includegraphics[scale=0.3]{pic3.jpg}& \includegraphics[scale=0.3]{pic4.jpg}\\ Picture Three&Picture Four\\ \multicolumn{2}{c}{ \includegraphics[scale=0.3]{bigPic.jpg}} \\ Large Central Image Spanning Both Columns \end{tabular} \caption{Example of arranging pictures using a table structure within LaTeX document.} \label{tab:pictureTableArrangement} \end{table} ``` 以上介绍了三种主要的技术手段帮助用户更好地掌握在 Overleaf 上操作 Latex 文档中的多媒体对象技巧。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值