Simple function approximation of a function in $L^p$
Solution 1:
Yes, it is possible, if $p<\infty$. It should be evident that it is enough to show that you can approximate a simple function by step functions (i.e. simple functions made only with characteristic functions of disjoint intervals). In order to do this, it is enough to show that the characteristic of a measurable set of finite measure can be approximated by step functions. Take a measurable set $A$ with $\mu(A)<+\infty$; by regularity, we can find an open set $U\supset A$ such that $\mu(U\setminus A)<\epsilon$ and by a well known result in topology, $U$ can be written as a countable union of disjoint intervals: $$U=\bigcup_{n=0}^\infty I_n$$ so, we can find $N$ such that $$\mu\left(\bigcup_{n> N} I_n\right)<\epsilon\;.$$ Hence, we define $$h(x)=\sum_{n=0}^N\chi_{I_n}(x)$$ and we have $$\|h(x)-\chi_A(x)\|_p\leq(2\epsilon)^{1/p}\;.$$ So, the step functions are dense among the simple functions, which in turn are dense in $L^p$.
If $p=\infty$, the result no longer holds: take a measurable set $A$ such that $0<\mu(A\cap I)<\mu(I)$ for every interval $I$, then $\chi_A$ is at a positive distance from every step function.